美文网首页
Bunyan日志框架 时间换成本地时间

Bunyan日志框架 时间换成本地时间

作者: OhnkytaBlabdey | 来源:发表于2019-11-12 22:53 被阅读0次

bunyan官方咕了7年了都没支持,js原生目前不支持装饰器,那就手动包装一下呗。

'use-strict';

const bunyan = require('bunyan');

const path = require('path');

function MyStream() {}

MyStream.prototype.write = function (rec) {

    rec.level = bunyan.nameFromLevel[rec.level];

    rec.time = new Date().toLocaleString();

};

const logger = bunyan.createLogger({

    name: 'bot',

    streams: [

        {

            level: 'debug',

            stream: process.stdout

        },

        {

            level: 'debug',

            type: 'rotating-file',

            path: path.normalize(__dirname + '/../..') + '/log/debug/debugs.log',

            period: '4h',

            count: 128

        },

        {

            level: 'info',

            type: 'rotating-file',

            path: path.normalize(__dirname + '/../..') + '/log/info/infos.log',

            period: '12h',

            count: 32

        },

        {

            level: 'warn',

            type: 'rotating-file',

            path: path.normalize(__dirname + '/../..') + '/log/warn/warns.log',

            period: '24h',

            count: 64

        }

    ]

});

let warpLogger = {};

warpLogger.logger = logger;

warpLogger.debug = (obj, ...para) => {

    logger.debug(obj, para.join(), new Date().toLocaleString('zh-CN'));

};

warpLogger.info = (obj, ...para) => {

    logger.info(obj, para.join(), new Date().toLocaleString('zh-CN'));

};

warpLogger.warn = (obj, ...para) => {

    logger.warn(obj, para.join(), new Date().toLocaleString('zh-CN'));

};

module.exports = warpLogger;

不过这种写法对于logger.info(format, ...params)的调用没有办法协调,希望有懂的在评论给出。

相关文章

网友评论

      本文标题:Bunyan日志框架 时间换成本地时间

      本文链接:https://www.haomeiwen.com/subject/ucscictx.html