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 ...@@ -109,6 +109,13 @@ bindIP: 0.0.0.0
logLevel: info logLevel: info
# --------------------------------------------------------------------- # ---------------------------------------------------------------------
# Log Format
# ---------------------------------------------------------------------
# Output format for logging, possible values: default, json
logFormat: default
# ---------------------------------------------------------------------
# Offline Mode # Offline Mode
# --------------------------------------------------------------------- # ---------------------------------------------------------------------
# If your server cannot access the internet. Set to true and manually # If your server cannot access the internet. Set to true and manually
......
...@@ -16,4 +16,5 @@ ssl: ...@@ -16,4 +16,5 @@ ssl:
domain: $(LETSENCRYPT_DOMAIN) domain: $(LETSENCRYPT_DOMAIN)
subscriberEmail: $(LETSENCRYPT_EMAIL) subscriberEmail: $(LETSENCRYPT_EMAIL)
logLevel: info logLevel: info
logFormat: $(LOG_FORMAT)
ha: $(HA_ACTIVE) ha: $(HA_ACTIVE)
...@@ -19,7 +19,7 @@ module.exports = { ...@@ -19,7 +19,7 @@ module.exports = {
} catch (err) { } catch (err) {
WIKI.logger.error('Database Initialization Error: ' + err.message) WIKI.logger.error('Database Initialization Error: ' + err.message)
if (WIKI.IS_DEBUG) { if (WIKI.IS_DEBUG) {
console.error(err) WIKI.logger.error(err)
} }
process.exit(1) process.exit(1)
} }
......
...@@ -6,14 +6,21 @@ const winston = require('winston') ...@@ -6,14 +6,21 @@ const winston = require('winston')
module.exports = { module.exports = {
loggers: {}, loggers: {},
init(uid) { 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, level: WIKI.config.logLevel,
format: winston.format.combine( format: winston.format.combine(...loggerFormats)
winston.format.colorize(),
winston.format.label({ label: uid }),
winston.format.timestamp(),
winston.format.printf(info => `${info.timestamp} [${info.label}] ${info.level}: ${info.message}`)
)
}) })
// Init Console (default) // Init Console (default)
......
...@@ -73,7 +73,7 @@ module.exports = { ...@@ -73,7 +73,7 @@ module.exports = {
mode: 0o600 mode: 0o600
}) })
} catch (err) { } catch (err) {
console.error(err) WIKI.logger.error(err)
throw 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