Unverified Commit 2815f38c authored by Marián Skrip's avatar Marián Skrip Committed by GitHub

feat(logging): add option to configure JSON logging (#5022)

* fix: Use logger for logs using console logging * feat: Add option to configure JSON logging * fix: use generic logFormat instead of json specific * fix: use logFormat for docker config * fix: use logFormat to build winston formatters Co-authored-by: 's avatarNicolas Giard <github@ngpixel.com>
parent 69e9ccc6
......@@ -109,6 +109,13 @@ bindIP: 0.0.0.0
logLevel: info
# ---------------------------------------------------------------------
# Log Format
# ---------------------------------------------------------------------
# Output format for logging, possible values: default, json
logFormat: default
# ---------------------------------------------------------------------
# Offline Mode
# ---------------------------------------------------------------------
# If your server cannot access the internet. Set to true and manually
......
......@@ -16,4 +16,5 @@ ssl:
domain: $(LETSENCRYPT_DOMAIN)
subscriberEmail: $(LETSENCRYPT_EMAIL)
logLevel: info
logFormat: $(LOG_FORMAT)
ha: $(HA_ACTIVE)
......@@ -19,7 +19,7 @@ module.exports = {
} catch (err) {
WIKI.logger.error('Database Initialization Error: ' + err.message)
if (WIKI.IS_DEBUG) {
console.error(err)
WIKI.logger.error(err)
}
process.exit(1)
}
......
......@@ -6,14 +6,21 @@ const winston = require('winston')
module.exports = {
loggers: {},
init(uid) {
let logger = winston.createLogger({
const loggerFormats = [
winston.format.label({ label: uid }),
winston.format.timestamp()
]
if (WIKI.config.logFormat === 'json') {
loggerFormats.push(winston.format.json())
} else {
loggerFormats.push(winston.format.colorize())
loggerFormats.push(winston.format.printf(info => `${info.timestamp} [${info.label}] ${info.level}: ${info.message}`))
}
const logger = winston.createLogger({
level: WIKI.config.logLevel,
format: winston.format.combine(
winston.format.colorize(),
winston.format.label({ label: uid }),
winston.format.timestamp(),
winston.format.printf(info => `${info.timestamp} [${info.label}] ${info.level}: ${info.message}`)
)
format: winston.format.combine(...loggerFormats)
})
// Init Console (default)
......
......@@ -73,7 +73,7 @@ module.exports = {
mode: 0o600
})
} catch (err) {
console.error(err)
WIKI.logger.error(err)
throw err
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment