Support roles with rights and add moderator role
[oweals/peertube.git] / server / helpers / logger.ts
1 // Thanks http://tostring.it/2014/06/23/advanced-logging-with-nodejs/
2 import * as mkdirp from 'mkdirp'
3 import * as path from 'path'
4 import * as winston from 'winston'
5
6 // Do not use barrel (dependencies issues)
7 import { CONFIG } from '../initializers/constants'
8
9 const label = CONFIG.WEBSERVER.HOSTNAME + ':' + CONFIG.WEBSERVER.PORT
10
11 // Create the directory if it does not exist
12 mkdirp.sync(CONFIG.STORAGE.LOG_DIR)
13
14 const logger = new winston.Logger({
15   transports: [
16     new winston.transports.File({
17       level: 'debug',
18       filename: path.join(CONFIG.STORAGE.LOG_DIR, 'all-logs.log'),
19       handleExceptions: true,
20       json: true,
21       maxsize: 5242880,
22       maxFiles: 5,
23       colorize: false,
24       prettyPrint: true
25     }),
26     new winston.transports.Console({
27       level: 'debug',
28       label: label,
29       handleExceptions: true,
30       humanReadableUnhandledException: true,
31       json: false,
32       colorize: true,
33       prettyPrint: true
34     })
35   ],
36   exitOnError: true
37 })
38
39 // ---------------------------------------------------------------------------
40
41 export { logger }