klg-logger

log 工具,基于 tracer,简单,可以显示 log 的位置

klg-logger

log 工具,基于 tracer,简单,可以显示 log 的位置

配置

3.0 版本开始,将不对 tracer 做任何封装,直接使用 Tracer

详细用法见 tracer 文档 https://www.npmjs.com/package/tracer

基本用法

简单版本

默认版本是把 log 输出到 console

import { Logger } from 'klg-logger'

const logger = Logger({
  level: config.get('log.level'),
  dateformat: 'yyyy-mm-dd HH:MM:ss.L',
  inspectOpt: {
    showHidden: false, // if true then the object's non-enumerable properties will be shown too. Defaults to false
    depth: 5 // tells inspect how many times to recurse while formatting the object. This is useful for inspecting large complicated objects. Defaults to 2. To make it recurse indefinitely pass null.
  }
})

logger.info('hello world')
logger.debug('hello %s', 'world')
logger.error('hello %s', 'error')

export {logger}

配置项的详细解释:

interface LoggerConfig {
    /**
     * Output format (Using `tinytim` templating)
     *
     * Defaults to: `"{{timestamp}} <{{title}}> {{file}}:{{line}} ({{method}}) {{message}}"`
     *
     * Possible values:
     * - timestamp: current time
     * - title: method name, default is 'log', 'trace', 'debug', 'info', 'warn', 'error','fatal'
     * - level: method level, default is 'log':0, 'trace':1, 'debug':2, 'info':3, 'warn':4, 'error':5, 'fatal':6
     * - message: printf message, support %s string, %d number, %j JSON and auto inspect
     * - file: file name
     * - line: line number
     * - pos: position
     * - path: file's path
     * - method: method name of caller
     * - stack: call stack message
     */
    format?: string | [string, LevelOption<string>];
    /**
     * Datetime format (Using `Date Format`)
     */
    dateformat?: string;
    filters?: FilterFunction[] | LevelOption<FilterFunction> | Array<FilterFunction | LevelOption<FilterFunction | FilterFunction[]>>;
    /**
     * Output the log, if level of log larger than or equal to `level`.
     */
    level?: string | number;
    methods?: string[];
    /**
     * Get the specified index of stack as file information. It is useful for development package.
     */
    stackIndex?: number;
    inspectOpt?: {
        /**
         * If true then the object's non-enumerable properties will be shown too. Defaults to false.
         */
        showHidden: boolean,
        /**
         * Tells inspect how many times to recurse while formatting the object.
         * This is useful for inspecting large complicated objects.
         * Defaults to 2. To make it recurse indefinitely pass null.
         */
        depth: number
    };

    /**
     * Pre-process the log object.
     */
    preprocess?(data: LogOutput): void;
    /**
     * Transport function (e.g. console.log)
     */
    transport?: TransportFunction | TransportFunction[];
}

自定义 transport

如果你需要把 log 输出到文件或者发送其他地方,可以自定义 transport function

import { Logger } from 'klg-logger'
const logger = new Logger({
  level: 'log',
  transport: function (data: Tracer.LogOutput) {
    // 写文件
    fs.write(data)
    // 发送其他地址
    tcp.send(data)

    assert(data)
    assert(data.level === 0)
  }
})
logger.log('hello world')

每日分割日志

如果你需要把 log 输出到文件或者发送其他地方,可以自定义 transport function

import { LoggerDaily } from 'klg-logger'
const logger = LoggerDaily({
  root: '/data/app/log',
  maxLogFiles: 10,
  allLogsFileName : true,
  level: 'log'
})
logger.log('hello world')
logger.err = logger.error
logger.err('hello world')

配置字段:

interface DailyFileConfig {
    /**
     * All daily log file's dir, default to: `'.'`.
     */
    root?: string;
    /**
     * Log file path format.
     *
     * Default to: `'{{root}}/{{prefix}}.{{date}}.log'`
     *
     * Possible values:
     * - `root`: all daily log file's dir, default to: `'.'`.
     * - `prefix`: it equal to `allLogsFileName`, if `allLogsFileName` is provided; else it will be the method name.
     * - `date`: today's date.
     */
    logPathFormat?: string;
    /**
     * Datetime format (Using `Date Format`)
     */
    splitFormat?: string;
    /**
     * If `allLogsFileName` is provided then all level logs will be move to one daily log file.
     */
    allLogsFileName?: boolean;
    maxLogFiles?: number;
}

Repository

https://github.com/kaolalicai/klg-logger


上一篇:klg-mq
下一篇:klg-date

相关推荐

  • zlogger

    The last console logger zlogger NPM versionnpmimagenpmurl build statustravisimagetravisurl Test c...

    2 年前
  • xlogger

    Node.js simple logger xlogger NPM versionnpmimagenpmurl build statustravisimagetravisurl Test cov...

    8 个月前
  • tslint-config-klg

    tslint standard for klg 考拉 typescript 编码 标准 编辑 tslint.json 加入以下内容即可 Repository https://githu...

    6 个月前
  • transport-logger

    A transport based logging mechanism for node.js Transport Logger ================ A multitransport...

    7 个月前
  • testarmada-logger

    logger for testarmada family logger Build Status(https://travisci.org/TestArmada/logger.svg?branch...

    6 个月前
  • terminal-logger

    It's a console logger inherited from abstractlogger. terminallogger npm(https://img.shields.io/npm...

    1 年前
  • stream-logger

    Wrapper on top of bustereventedlogger that does pretty outout to stdout and stderr. streamlogger ...

    2 年前
  • springbokjs-logger

    Logger using winston springbokjslogger NPM versionnpmimagenpmurl Drone.io Statusdroneioimagedroneio...

    8 个月前
  • simplr-logger

    Simple JavaScript logger written in TypeScript that can be used in browser or node application. Si...

    1 年前
  • simple-node-logger

    A node console and file logger suitable for small, medium and large production projects. Simple No...

    2 个月前

官方社区

扫码加入 JavaScript 社区