Merge pull request #1055 from SISheogorath/upgrade/winston

Upgrade winston / refactor logging
This commit is contained in:
Christoph (Sheogorath) Kern 2018-11-14 12:13:43 +01:00 committed by GitHub
commit f9aa001ee7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 25 additions and 17 deletions

View File

@ -179,6 +179,7 @@ There are some config settings you need to change in the files below.
| `CMD_HOST` | `localhost` | host to listen on | | `CMD_HOST` | `localhost` | host to listen on |
| `CMD_PORT` | `80` | web app port | | `CMD_PORT` | `80` | web app port |
| `CMD_PATH` | `/var/run/codimd.sock` | path to UNIX domain socket to listen on (if specified, `CMD_HOST` and `CMD_PORT` are ignored) | | `CMD_PATH` | `/var/run/codimd.sock` | path to UNIX domain socket to listen on (if specified, `CMD_HOST` and `CMD_PORT` are ignored) |
| `CMD_LOGLEVEL` | `info` | Defines what kind of logs are provided to stdout. |
| `CMD_ALLOW_ORIGIN` | `localhost, codimd.org` | domain name whitelist (use comma to separate) | | `CMD_ALLOW_ORIGIN` | `localhost, codimd.org` | domain name whitelist (use comma to separate) |
| `CMD_PROTOCOL_USESSL` | `true` or `false` | set to use SSL protocol for resources path (only applied when domain is set) | | `CMD_PROTOCOL_USESSL` | `true` or `false` | set to use SSL protocol for resources path (only applied when domain is set) |
| `CMD_URL_ADDPORT` | `true` or `false` | set to add port on callback URL (ports `80` or `443` won't be applied) (only applied when domain is set) | | `CMD_URL_ADDPORT` | `true` or `false` | set to add port on callback URL (ports `80` or `443` won't be applied) (only applied when domain is set) |
@ -274,6 +275,7 @@ There are some config settings you need to change in the files below.
| `host` | `localhost` | host to listen on | | `host` | `localhost` | host to listen on |
| `port` | `80` | web app port | | `port` | `80` | web app port |
| `path` | `/var/run/codimd.sock` | path to UNIX domain socket to listen on (if specified, `host` and `port` are ignored) | | `path` | `/var/run/codimd.sock` | path to UNIX domain socket to listen on (if specified, `host` and `port` are ignored) |
| `loglevel` | `info` | Defines what kind of logs are provided to stdout. |
| `allowOrigin` | `['localhost']` | domain name whitelist | | `allowOrigin` | `['localhost']` | domain name whitelist |
| `useSSL` | `true` or `false` | set to use SSL server (if `true`, will auto turn on `protocolUseSSL`) | | `useSSL` | `true` or `false` | set to use SSL server (if `true`, will auto turn on `protocolUseSSL`) |
| `hsts` | `{"enable": true, "maxAgeSeconds": 31536000, "includeSubdomains": true, "preload": true}` | [HSTS](https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security) options to use with HTTPS (default is the example value, max age is a year) | | `hsts` | `{"enable": true, "maxAgeSeconds": 31536000, "includeSubdomains": true, "preload": true}` | [HSTS](https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security) options to use with HTTPS (default is the example value, max age is a year) |

View File

@ -6,6 +6,7 @@
} }
}, },
"development": { "development": {
"loglevel": "debug",
"hsts": { "hsts": {
"enable": false "enable": false
}, },
@ -16,6 +17,7 @@
}, },
"production": { "production": {
"domain": "localhost", "domain": "localhost",
"loglevel": "info"
"hsts": { "hsts": {
"enable": true, "enable": true,
"maxAgeSeconds": "31536000", "maxAgeSeconds": "31536000",

View File

@ -7,6 +7,7 @@ module.exports = {
urlPath: '', urlPath: '',
host: '0.0.0.0', host: '0.0.0.0',
port: 3000, port: 3000,
loglevel: 'info',
urlAddPort: false, urlAddPort: false,
allowOrigin: ['localhost'], allowOrigin: ['localhost'],
useSSL: false, useSSL: false,

View File

@ -9,6 +9,7 @@ module.exports = {
host: process.env.CMD_HOST, host: process.env.CMD_HOST,
port: toIntegerConfig(process.env.CMD_PORT), port: toIntegerConfig(process.env.CMD_PORT),
path: process.env.CMD_PATH, path: process.env.CMD_PATH,
loglevel: process.env.CMD_LOGLEVEL,
urlAddPort: toBooleanConfig(process.env.CMD_URL_ADDPORT), urlAddPort: toBooleanConfig(process.env.CMD_URL_ADDPORT),
useSSL: toBooleanConfig(process.env.CMD_USESSL), useSSL: toBooleanConfig(process.env.CMD_USESSL),
hsts: { hsts: {

View File

@ -45,6 +45,12 @@ merge(config, require('./hackmdEnvironment'))
merge(config, require('./environment')) merge(config, require('./environment'))
merge(config, require('./dockerSecret')) merge(config, require('./dockerSecret'))
if (['debug', 'verbose', 'info', 'warn', 'error'].includes(config.loglevel)) {
logger.level = config.loglevel
} else {
logger.error('Selected loglevel %s doesn\'t exist, using default level \'debug\'. Available options: debug, verbose, info, warn, error', config.loglevel)
}
// load LDAP CA // load LDAP CA
if (config.ldap.tlsca) { if (config.ldap.tlsca) {
let ca = config.ldap.tlsca.split(',') let ca = config.ldap.tlsca.split(',')

View File

@ -1,23 +1,19 @@
'use strict' 'use strict'
const winston = require('winston') const {createLogger, format, transports} = require('winston')
class Logger extends winston.Logger { module.exports = createLogger({
// Implement stream.writable.write interface level: 'debug',
write (chunk) { format: format.combine(
this.info(chunk) format.uncolorize(),
} format.timestamp(),
} format.align(),
format.splat(),
module.exports = new Logger({ format.printf(info => `${info.timestamp} ${info.level}: ${info.message}`)
),
transports: [ transports: [
new winston.transports.Console({ new transports.Console({
level: 'debug', handleExceptions: true
handleExceptions: true,
json: false,
colorize: false,
timestamp: true
}) })
], ],
emitErrs: true,
exitOnError: false exitOnError: false
}) })

View File

@ -129,7 +129,7 @@
"velocity-animate": "^1.4.0", "velocity-animate": "^1.4.0",
"visibilityjs": "^1.2.4", "visibilityjs": "^1.2.4",
"viz.js": "^1.7.0", "viz.js": "^1.7.0",
"winston": "^2.3.0", "winston": "^3.1.0",
"ws": "^6.0.0", "ws": "^6.0.0",
"xss": "^1.0.3" "xss": "^1.0.3"
}, },