Fiw winston meta log
This commit is contained in:
parent
655b549048
commit
e20015d744
2 changed files with 17 additions and 25 deletions
|
@ -90,4 +90,4 @@ function getNewestFile (files: string[], basePath: string) {
|
|||
out.sort((a, b) => b.mtime - a.mtime)
|
||||
|
||||
return (out.length > 0) ? out[ 0 ].file : ''
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,36 +9,28 @@ const label = CONFIG.WEBSERVER.HOSTNAME + ':' + CONFIG.WEBSERVER.PORT
|
|||
// Create the directory if it does not exist
|
||||
mkdirp.sync(CONFIG.STORAGE.LOG_DIR)
|
||||
|
||||
// Use object for better performances (~ O(1))
|
||||
const excludedKeys = {
|
||||
level: true,
|
||||
message: true,
|
||||
splat: true,
|
||||
timestamp: true,
|
||||
label: true
|
||||
}
|
||||
function keysExcluder (key, value) {
|
||||
if (excludedKeys[key] === true) return undefined
|
||||
function loggerReplacer (key: string, value: any) {
|
||||
if (value instanceof Error) {
|
||||
const error = {}
|
||||
|
||||
if (key === 'err') return value.stack
|
||||
Object.getOwnPropertyNames(value).forEach(key => error[ key ] = value[ key ])
|
||||
|
||||
return error
|
||||
}
|
||||
|
||||
return value
|
||||
}
|
||||
|
||||
const consoleLoggerFormat = winston.format.printf(info => {
|
||||
let additionalInfos = JSON.stringify(info, keysExcluder, 2)
|
||||
if (additionalInfos === '{}') additionalInfos = ''
|
||||
let additionalInfos = JSON.stringify(info.meta, loggerReplacer, 2)
|
||||
if (additionalInfos === undefined || additionalInfos === '{}') additionalInfos = ''
|
||||
else additionalInfos = ' ' + additionalInfos
|
||||
|
||||
return `[${info.label}] ${info.timestamp} ${info.level}: ${info.message}${additionalInfos}`
|
||||
})
|
||||
|
||||
const jsonLoggerFormat = winston.format.printf(infoArg => {
|
||||
let info = infoArg.err
|
||||
? Object.assign({}, infoArg, { err: infoArg.err.stack })
|
||||
: infoArg
|
||||
|
||||
return JSON.stringify(info)
|
||||
const jsonLoggerFormat = winston.format.printf(info => {
|
||||
return JSON.stringify(info, loggerReplacer)
|
||||
})
|
||||
|
||||
const timestampFormatter = winston.format.timestamp({
|
||||
|
@ -50,16 +42,18 @@ const labelFormatter = winston.format.label({
|
|||
|
||||
const logger = winston.createLogger({
|
||||
level: CONFIG.LOG.LEVEL,
|
||||
format: winston.format.combine(
|
||||
labelFormatter,
|
||||
winston.format.splat()
|
||||
),
|
||||
transports: [
|
||||
new winston.transports.File({
|
||||
filename: path.join(CONFIG.STORAGE.LOG_DIR, 'peertube.log'),
|
||||
handleExceptions: true,
|
||||
maxsize: 5242880,
|
||||
maxsize: 1024 * 1024 * 30,
|
||||
maxFiles: 5,
|
||||
format: winston.format.combine(
|
||||
winston.format.timestamp(),
|
||||
labelFormatter,
|
||||
winston.format.splat(),
|
||||
jsonLoggerFormat
|
||||
)
|
||||
}),
|
||||
|
@ -67,8 +61,6 @@ const logger = winston.createLogger({
|
|||
handleExceptions: true,
|
||||
format: winston.format.combine(
|
||||
timestampFormatter,
|
||||
winston.format.splat(),
|
||||
labelFormatter,
|
||||
winston.format.colorize(),
|
||||
consoleLoggerFormat
|
||||
)
|
||||
|
|
Loading…
Reference in a new issue