diff --git a/package.json b/package.json index 68df1cb9b..be1b612b7 100644 --- a/package.json +++ b/package.json @@ -40,6 +40,7 @@ "update-host": "ts-node ./scripts/update-host.ts", "test": "scripty", "help": "scripty", + "parse-log": "ts-node ./scripts/parse-log.ts", "postinstall": "cd client && yarn install --pure-lockfile", "tsc": "tsc", "nodemon": "nodemon", diff --git a/scripts/parse-log.ts b/scripts/parse-log.ts new file mode 100755 index 000000000..81a22f7a0 --- /dev/null +++ b/scripts/parse-log.ts @@ -0,0 +1,42 @@ +import { createReadStream } from 'fs' +import { join } from 'path' +import { createInterface } from 'readline' +import * as winston from 'winston' +import { readFileBufferPromise } from '../server/helpers/core-utils' +import { CONFIG } from '../server/initializers/constants' + +const label = CONFIG.WEBSERVER.HOSTNAME + ':' + CONFIG.WEBSERVER.PORT + +const logger = new winston.Logger({ + transports: [ + new winston.transports.Console({ + level: 'debug', + label: label, + handleExceptions: true, + humanReadableUnhandledException: true, + json: false, + colorize: true, + prettyPrint: true + }) + ], + exitOnError: true +}) + +const logLevels = { + error: logger.error, + warn: logger.warn, + info: logger.info, + debug: logger.debug +} + +const path = join(CONFIG.STORAGE.LOG_DIR, 'all-logs.log') +console.log('Opening %s.', path) + +const rl = createInterface({ + input: createReadStream(path) +}) + +rl.on('line', line => { + const log = JSON.parse(line) + logLevels[log.level](log.message) +})