think-logger3
    TypeScript icon, indicating that this package has built-in type declarations

    1.2.1 • Public • Published

    think-logger

    npm Travis Coveralls David

    ThinkJS3.x log module, based on log4js.

    Installation

    npm install think-logger3
    

    How To Use

    Basic

    const Logger = require('think-logger3');
    const logger = new Logger();
    logger.debug('Hello World');

    There has four log function you can use:

    logger.info('info log');
    logger.debug('debug log');
    logger.warn('warn log');
    logger.error('error log');

    Advanced

    If you want to log file, you can use file adapter like this:

    const Logger = require('think-logger3');
    const logger = new Logger({
       handle: Logger.File,
       filename: __dirname + '/test.log'
    });
    logger.debug('Hello World');

    Adapters

    File

    This adapter will log to a file, and supports split log file by a constant file size. For example:

    const Logger = require('think-logger3');
    const logger = new Logger({
      handle: Logger.File,
      filename: __dirname + '/debug.log',
      maxLogSize: 50 * 1024,  //50M
      backups: 10 //max chunk number
    })

    Then initial log would create a file called debug.log. After this file reached maxLogSize, a new file named debug.log.1 will be created. After log file number reached backups, old log chunk file will be removed.

    Configuration

    • filename: log filename
    • maxLogSize: The maximum size (in bytes) for a log file, if not provided then logs won't be rotated.
    • backups: The number of log files to keep after logSize has been reached (default 5)
    • absolute: If filename is a absolute path, the absolute value should be true.
    • layout: Layout defines the way how a log record is rendered. More layouts can see here.

    DateFile

    This adapter will log to a file, moving old log messages to timestamped files according to a specified pattern. For example:

    const Logger = require('think-logger3');
    const logger = new Logger({
      handle: Logger.DateFile,
      filename: __dirname + '/debug.log',
      pattern: '-yyyy-MM-dd',
      alwaysIncludePattern: false
    });

    Then initial log would create a file called debug.log. At midnight, the current debug.log file would be rename to debug.log-2017-03-12(for example), and a new debug.log file created.

    Configuration

    • level: log level
    • filename: log base filename
    • pattern: date filename would append to filename. A new file is started whenever the pattern for the current log entry differs from that of the previous log entry. The following strings are recognised in the pattern:
      • yyyy - the full year, use yy for just the last two digits
      • MM - the month
      • dd - the day of the month
      • hh - the hour of the day (24-hour clock)
      • mm - the minute of the hour
      • ss - seconds
      • SSS - milliseconds (although I'm not sure you'd want to roll your logs every millisecond)
      • O - timezone (capital letter o)
    • alwaysIncludePattern: If alwaysIncludePattern is true, then the initial file will be filename.2017-03-12 and no renaming will occur at midnight, but a new file will be written to with the name filename.2017-03-13.
    • absolute: If filename is a absolute path, the absolute value should be true.
    • layout: Layout defines the way how a log record is rendered. More layouts can see here.

    Basic

    If those adapter configuration can't satisfy your need, you can use this adapter and set config like log4js. For example:

    const Logger = require('think-logger3');
    const logger = new Logger({
      handle: Logger.Basic,
      appenders: {
        everything: { type: 'file', filename: 'all-the-logs.log' },
        emergencies: {  type: 'file', filename: 'oh-no-not-again.log' },
        'just-errors': { type: 'logLevelFilter', appender: 'emergencies', level: 'error' }
      },
      categories: {
        default: { appenders: ['just-errors', 'everything'], level: 'debug' }
      }
    });

    All properties are as same as log4js except handle property. You can see more configure properties on log4js documentation.

    Contributing

    Contributions welcome!

    License

    MIT

    Install

    npm i think-logger3

    DownloadsWeekly Downloads

    580

    Version

    1.2.1

    License

    MIT

    Unpacked Size

    13.3 kB

    Total Files

    14

    Last publish

    Collaborators

    • lizheming
    • welefen
    • sijiecai
    • lushijie
    • berwin
    • bezos
    • toxicjohann
    • huangxiaolu