VevoxDigital/Skribki

View on GitHub
modules/logging.js

Summary

Maintainability
A
0 mins
Test Coverage
'use strict'

// this module loads absolutely first before anything.
// perform init
require('colors')

const winston = require('winston')
require('winston-daily-rotate-file')

exports.id = 'logging'

exports.install = () => {
  F.logger = new winston.Logger({
    transports: [

      // console output will be the most verbose
      new winston.transports.Console({
        colorize: true,
        level: F.isDebug ? 'debug' : 'verbose'
      }),

      // info files will rotate daily
      new winston.transports.DailyRotateFile({
        name: 'info-file',
        filename: F.path.logs('info-'),
        datePattern: 'yy-MM-dd.log',
        level: 'info',
        json: false
      }),

      // error files rotate once a month
      new winston.transports.DailyRotateFile({
        name: 'error-file',
        filename: F.path.logs('errors'),
        datePattern: '-yy-MM.log',
        level: 'warn',
        json: false
      })

    ]
  })
}

exports.uninstall = () => {
  delete F.logger
  delete global.LOG
}