Newer
Older
import pino from 'pino'
const GCloudLogLevelMapping= {
trace: 'DEBUG',
debug: 'DEBUG',
info: 'INFO',
warn: 'WARNING',
error: 'ERROR',
fatal: 'CRITICAL',
}
const mapToGCloudSeverity= (level: string) => {
return level in GCloudLogLevelMapping ? GCloudLogLevelMapping[level as keyof typeof GCloudLogLevelMapping] : GCloudLogLevelMapping.info
}
const logger = pino({
formatters: {
level(level, number) {
return {
severity: mapToGCloudSeverity(level),
level: number,
}
},
log(entry) {
const error = entry.err
return { ...entry, ...(error instanceof Error && { stack_trace: error.stack }) }
},
},
mixin() {
return {
'logging.googleapis.com/labels': {
environment: process.env.ENVIRONMENT_ID || 'development',