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