uci-utils-logger/src/logger.js

40 lines
1.1 KiB
JavaScript

import pino from 'pino'
import { homedir } from 'os'
let pretty = false
if(process.env.UCI_DEV) {
pretty = process.env.UCI_LOG_PRETTY || {translateTime:true, colorize:true, levelFirst:true }
pretty.search = process.env.UCI_LOG_SEARCH
}
let LOG = process.env.UCI_LOG || process.env.UCI_DEV || process.env.UCI_PROD
let LOG_PATH = (process.env.UCI_PROD===true) ? homedir()+'/logs/uci.log' : process.env.UCI_PROD
const logger = pino({
name: 'UCI',
enabled: !!LOG,
safe: true,
serializers: {
req: pino.stdSerializers.req,
res: pino.stdSerializers.res
},
prettyPrint: pretty
},
// if production not enabled then LOG_PATH is empty and logs go to stdout/stderr and can be piped from there
LOG_PATH
)
function child (opts) {
const LOG_OPTS = {
repo: opts.repo || 'uci-'+ opts.name,
package: opts.package || '@uci/'+ opts.name,
file: opts.file || `src/${opts.name}.js`,
class: opts.class || (opts.name.charAt(0).toUpperCase() + opts.name.slice(1)),
id: opts.id || opts.name || 'none',
instance_created:new Date().getTime()
}
return logger.child(LOG_OPTS)
}
export default child