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

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)的调用没有办法协调,希望有懂的在评论给出。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容