gpt4 book ai didi

javascript - winston 完整自定义文件输出

转载 作者:行者123 更新时间:2023-12-02 14:18:59 25 4
gpt4 key购买 nike

编辑:找到答案,并为 future 的读者发布完整的答案。

<小时/>

我已经掌握了winston logging的基础知识在 Node.js 中,并希望更多地自定义我的日志记录。这是我到目前为止所拥有的:

var winston = require('winston');         

winston.remove(winston.transports.Console);
winston.add(winston.transports.Console, {'colorize': true});
winston.add(winston.transports.File,
{
'filename': 'testlog.log',
'timestamp': function() {return Date.now();},
}
);

// let's say I only want to log 'info' or 'error'
function loginfo(arg) {return winston.info(arg);}
function logerror(arg) {return winston.error(arg);}

输出文件将如下所示:

{"level":"info","message":"someinfo","timestamp":1470515515807}
{"level":"error","message":"someerror","timestamp":1470515515808}

我知道 JSON 格式标准日志记录很重要,因此我想保持几乎标准的文件传输不变。

但是由于我实际上正在阅读这些日志的每一行,因此我想打开第三个传输到另一个文件,并使用完全自定义的格式仅适合我的眼睛,例如:

1470515515807 info "someinfo"
1470515515808 error "someerror"
1470515519532 error HERE_GOES_SOME_COMPLEX_ERROR_MESSAGE_OR_OBJECT_
I_WANT_TO_SEE_AS_PRETTY_POSSIBLE_DESPITE_THE_FACT_IT_IS_VERY_COMPLEX

我已经做了some researchit seems there is no such functionnality winston 可直接购买。我注意到fancy bunyan CLI tool但我想要的“似乎”要简单得多。

问题:

1)日志库中是否没有内置的自定义输出格式可以满足我的要求? [不敢相信]

2)如果我必须自己对其进行硬编码,您能给我一些指导吗(以我想要的方式处理标准输出而不会使应用程序本身重载的最佳实践),特别是当涉及到某些错误返回的复杂对象时?

最佳答案

[回答我自己的问题]

Winston 有一个简单而高效的自定义格式化程序选项,GitHub readme 的最底部提供了一个示例。 .

在我的示例中,不检查每个参数是否存在的最小代码是:

var log = new (winston.Logger)({

transports: [

new (winston.transports.File)({
name: 'info_normal',
filename: './log_info.log',
level: 'info',
timestamp: function(){return Date.now();}
}),

new (winston.transports.File)({
name: 'info_custom',
filename: './log_info_custom.log',
level: 'info',
timestamp: function(){return Date.now();},
formatter: function(options) {
// Returned string will be passed to the logger
return options.timestamp() + ' ' + options.level + ' ' +
options.message + ' ' + JSON.stringify(options.meta);
},
json: false //don't forget it !!!!!!!!!!!
})
]
});

从这里开始,改进定制就非常容易了。冷静点, winston !

关于javascript - winston 完整自定义文件输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38808957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com