2.3.3 • Published 4 years ago

@node-package/logger v2.3.3

Weekly downloads
4
License
MIT
Repository
github
Last release
4 years ago

logger

logger for nodejs

Install

$ npm i @zhangfuxing/logger

Node.js 12+ required (Because of use Class private fields)

options

When isTTY is false, logger will not write to terminal.

constructor

  • dir optional, Log folder path, if it is given, it will log to file
  • rotate optional, Whether cut logs by day
    • default: false
  • disableConsole optional, disable write to terminal
    • default: false

info

  • args The message to write
info(...args: any[]): void;

warn

  • args The message to write
warn(...args: any[]): void;

error

  • args The message to write
error(...args: any[]): void;

disable

disable write to terminal and file for unit testing

Useage

console logger

const Logger = require('@zhangfuxing/logger');

const logger = new Logger();

logger.info('consoleLogger info', { name: 'zfx' });
logger.warn('consoleLogger warn', 1, 'any');
logger.error('consoleLogger error', new Error('test'));

consoleLogger

file and console logger

const Logger = require('@zhangfuxing/logger');

const logger = new Logger({
  dir: './log'
});

logger.info('fileLogger info', 'any', { name: 'zfx' });
logger.warn('fileLogger warn', 'any', 'any');
logger.error('fileLogger error', 'any', new Error('test'), 'any');

fileLogger

file logger only

const Logger = require('@zhangfuxing/logger');

const logger = new Logger({
  dir: './log',
  disableConsole: true
});

logger.info('fileLogger info', 'any', { name: 'zfx' });
logger.warn('fileLogger warn', 'any', 'any');
logger.error('fileLogger error', 'any', new Error('test'), 'any');

file logger cut by day

const Logger = require('@zhangfuxing/logger');

const logger = new Logger({
  dir: './log',
  rotate: true 
});

logger.info('fileLogger info', 'any', { name: 'zfx' });
logger.warn('fileLogger warn', 'any', 'any');
logger.error('fileLogger error', 'any', new Error('test'), 'any');

byDay

More screenshots in the screenshots folder.

disable for unit testing

disable write to terminal and file for unit testing

consoleLogger.js

const Logger = require('@zhangfuxing/logger');

const logger = new Logger();

module.exports = logger

fileLogger.js

const Logger = require('@zhangfuxing/logger');

const logger = new Logger({
  dir: './log'
});

module.exports = logger

xx.test.js

const consoleLogger= require('xx/consoleLogger');
const fileLogger= require('xx/fileLogger');

consoleLogger.disable();
fileLogger.disable();

Test

$ npm test

More test file in the test folder.

2.3.3

4 years ago