将node.js console.log覆盖到自定义记录器中的文件

时间:2017-08-07 09:35:35

标签: javascript node.js logging

我很遗憾管理node.js应用程序不再受制作人支持。由于我之前从未深入node.js(仅仅是一些前端js),我怀疑如何将日志从控制台更改为文件。以下是负责记录的实际代码:

if (config.logToStdOut){
log = function(func){
    return function(what){
        func(what)
        what.ts = new Date()
        console.log(what)
    }
}(log)}

我尝试使用fswritestream并添加简单的logFile.Write(what),但由于what是一种使用这种简单方法产生的对象仅在日志Object object条目中,仅此而已。那么任何想法如何让这个控制台登录到文件?

提前致谢!

好的,我认为what实际上是JSON对象。然而,出现了新的问题。当我尝试将输出重定向到文件时,以下方法有效:

console.log = function(what) {  
logFile.write(JSON.stringify(what, null, 2))}

然而,当我尝试使用原始方法(也为JSON添加时间戳)时,它不起作用,即:

log = function(func){
    return function(what){
        func(what)
        what.ts = new Date()           
        logFileTest.write(JSON.stringify(what, null, 2))

}
}(log)

文件已创建,但该文件为空。

任何想法为什么?根据我的理解,使用console.log(JSON object)时,它与fs.write(JSON.stringify(JSON Object)中的对象完全相同?还是不?

0 个答案:

没有答案