]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/helpers/logger.js
First version with PostgreSQL
[github/Chocobozzz/PeerTube.git] / server / helpers / logger.js
1 // Thanks http://tostring.it/2014/06/23/advanced-logging-with-nodejs/
2 'use strict'
3
4 const mkdirp = require('mkdirp')
5 const path = require('path')
6 const winston = require('winston')
7 winston.emitErrs = true
8
9 const constants = require('../initializers/constants')
10
11 const label = constants.CONFIG.WEBSERVER.HOSTNAME + ':' + constants.CONFIG.WEBSERVER.PORT
12
13 // Create the directory if it does not exist
14 mkdirp.sync(constants.CONFIG.STORAGE.LOG_DIR)
15
16 const logger = new winston.Logger({
17 transports: [
18 new winston.transports.File({
19 level: 'debug',
20 filename: path.join(constants.CONFIG.STORAGE.LOG_DIR, 'all-logs.log'),
21 handleExceptions: true,
22 json: true,
23 maxsize: 5242880,
24 maxFiles: 5,
25 colorize: false,
26 prettyPrint: true
27 }),
28 new winston.transports.Console({
29 level: 'debug',
30 label: label,
31 handleExceptions: true,
32 humanReadableUnhandledException: true,
33 json: false,
34 colorize: true,
35 prettyPrint: true
36 })
37 ],
38 exitOnError: true
39 })
40
41 logger.stream = {
42 write: function (message, encoding) {
43 logger.info(message)
44 }
45 }
46
47 // ---------------------------------------------------------------------------
48
49 module.exports = logger