Skip to content

SalakJS/salak-logger

Repository files navigation

salak-logger

NPM version build status Test coverage David deps NPM download

Salak logger, base on winston.

Install

npm install --save salak-logger

Usage

const Koa = require('koa')
const logger = require('salak-logger')

const app = new Koa()
app.baseDir = __dirname
app.logger = logger({
  fileType: 'dateFile',
  formatType: 'log4js',
  defaultLevel: 'debug'
}, app)

app.logger.info('log')

Options

  • root {String} directory for storing logs, default path.join(app.baseDir, 'logs')
  • injectConsole {Boolean} inject console transport for logger,default true
  • removeConsoleAfterServerStart {Boolean} remove console transport after server start,default app.env === 'production'
  • formatType {String} type for logger format, log4js or json, default log4js
  • fileType {String} file type for storing log, file or dateFile, default file
  • category {Object} optional, default undefined
  • categories {Object} optional, be used when category was unset
  • capture {Object} options to pass to the http request log
  • defaultLevel {String} log output level, default app.env === 'production' ? 'info' : 'debug'
  • transports {Object} transports for category
  • transportsDefaultOptions {Object} default options for transports, like file, dateFile

options for capture

  • enable {Boolean} log the http request, default true
  • level {String} logger level, when set to auto, the logger level will be seted by http status code, default auto
  • category {String} logger category, default http

options for transports

type: Map

default:

transports: {
  console: { type: 'console' },
  default: createFileTransport({ filename: 'default' }),
  app: !isSingleCategory && createFileTransport({ filename: 'app' }),
  http: !isSingleCategory && createFileTransport({ filename: 'access' }),
  error: createFileTransport({ filename: 'error', level: 'error' })
}
  • key {String} transport name
  • value {Object} transport options
  • value.type {String} can be set to 'console', 'file', 'http', 'stream', 'dateFile', refer transport options, dateFile options

options for transportsDefaultOptions

type: Map

transportsDefaultOptions: {
  file: {
    maxFiles: 30, // 30 files
    maxsize: 100 * 1024 * 1024 // 100m
  }
}

options for category

  • transports {Array<String|Transport>} transport referred to transports which defined
  • level {String} log level, default ${options.defaultLevel}

options for categories

type: Map

default:

categories: {
  default: {
    transports: [
      'default',
      'error'
    ]
  },
  app: {
    transports: [
      'app',
      'error'
    ]
  },
  http: {
    transports: [
      'http'
    ]
  }
}
  • key {String} category name
  • value {Object} category options
  • value.transports {Array<String|Transport>} transport referred to transports which defined
  • value.level {String} log level, default ${options.defaultLevel}

License

MIT