summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSheogorath2018-11-13 23:29:33 +0100
committerSheogorath2018-11-14 00:47:11 +0100
commitc3584770f24205d84b9399abd9535cb27dc7b00c (patch)
treee86baadf379199a78286c49565650abbae2723aa
parent54d3d930cf39c2a3bec422d858cbac20ad8118eb (diff)
Upgrade winston
Our log library got a new major version which should be implemented. That's exactly what this patch does. Implementing the new version of the logging library. Signed-off-by: Sheogorath <sheogorath@shivering-isles.com>
-rw-r--r--README.md2
-rw-r--r--config.json.example2
-rw-r--r--lib/config/default.js1
-rw-r--r--lib/config/environment.js1
-rw-r--r--lib/config/index.js6
-rw-r--r--lib/logger.js28
-rw-r--r--package.json2
7 files changed, 25 insertions, 17 deletions
diff --git a/README.md b/README.md
index 5e49f2ed..938ba71d 100644
--- a/README.md
+++ b/README.md
@@ -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_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_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_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) |
@@ -274,6 +275,7 @@ There are some config settings you need to change in the files below.
| `host` | `localhost` | host to listen on |
| `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) |
+| `loglevel` | `info` | Defines what kind of logs are provided to stdout. |
| `allowOrigin` | `['localhost']` | domain name whitelist |
| `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) |
diff --git a/config.json.example b/config.json.example
index 16c95509..8965add2 100644
--- a/config.json.example
+++ b/config.json.example
@@ -6,6 +6,7 @@
}
},
"development": {
+ "loglevel": "debug",
"hsts": {
"enable": false
},
@@ -16,6 +17,7 @@
},
"production": {
"domain": "localhost",
+ "loglevel": "info"
"hsts": {
"enable": true,
"maxAgeSeconds": "31536000",
diff --git a/lib/config/default.js b/lib/config/default.js
index 15f11aaa..71375b98 100644
--- a/lib/config/default.js
+++ b/lib/config/default.js
@@ -7,6 +7,7 @@ module.exports = {
urlPath: '',
host: '0.0.0.0',
port: 3000,
+ loglevel: 'info',
urlAddPort: false,
allowOrigin: ['localhost'],
useSSL: false,
diff --git a/lib/config/environment.js b/lib/config/environment.js
index 0c7c9a4f..4220e54d 100644
--- a/lib/config/environment.js
+++ b/lib/config/environment.js
@@ -9,6 +9,7 @@ module.exports = {
host: process.env.CMD_HOST,
port: toIntegerConfig(process.env.CMD_PORT),
path: process.env.CMD_PATH,
+ loglevel: process.env.CMD_LOGLEVEL,
urlAddPort: toBooleanConfig(process.env.CMD_URL_ADDPORT),
useSSL: toBooleanConfig(process.env.CMD_USESSL),
hsts: {
diff --git a/lib/config/index.js b/lib/config/index.js
index 4e1fa50d..c1005b0b 100644
--- a/lib/config/index.js
+++ b/lib/config/index.js
@@ -45,6 +45,12 @@ merge(config, require('./hackmdEnvironment'))
merge(config, require('./environment'))
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
if (config.ldap.tlsca) {
let ca = config.ldap.tlsca.split(',')
diff --git a/lib/logger.js b/lib/logger.js
index f8b3895c..c70b81b8 100644
--- a/lib/logger.js
+++ b/lib/logger.js
@@ -1,23 +1,19 @@
'use strict'
-const winston = require('winston')
+const {createLogger, format, transports} = require('winston')
-class Logger extends winston.Logger {
- // Implement stream.writable.write interface
- write (chunk) {
- this.info(chunk)
- }
-}
-
-module.exports = new Logger({
+module.exports = createLogger({
+ level: 'debug',
+ format: format.combine(
+ format.uncolorize(),
+ format.timestamp(),
+ format.align(),
+ format.splat(),
+ format.printf(info => `${info.timestamp} ${info.level}: ${info.message}`)
+ ),
transports: [
- new winston.transports.Console({
- level: 'debug',
- handleExceptions: true,
- json: false,
- colorize: false,
- timestamp: true
+ new transports.Console({
+ handleExceptions: true
})
],
- emitErrs: true,
exitOnError: false
})
diff --git a/package.json b/package.json
index 304a526d..cd875ac6 100644
--- a/package.json
+++ b/package.json
@@ -129,7 +129,7 @@
"velocity-animate": "^1.4.0",
"visibilityjs": "^1.2.4",
"viz.js": "^1.7.0",
- "winston": "^2.3.0",
+ "winston": "^3.1.0",
"ws": "^6.0.0",
"xss": "^1.0.3"
},