Structured Logger With Pino
Configure a structured logger with Pino for high-performance JSON logging with child loggers.
Code
import pino from'pino';export function createLogger({level='info',service='app',version='1.0.0'}={}){return pino({level,timestamp:pino.stdTimeFunctions.isoTime,formatters:{level(label){return{level:label};}},bindings:{service,version}});}export function childLogger(parent:pino.Logger,context:Record<string,unknown>){return parent.child(context);}export function requestLogger(logger:pino.Logger){return(req:{id:string;method:string;url:string},res:{statusCode:number},next:()=>void)=>{const start=Date.now();next();logger.info({reqId:req.id,method:req.method,url:req.url,status:res.statusCode,duration:Date.now()-start},'request completed');};}Report a problem with this exampleOpens a pre-filled issue on GitHub.