use*_*147 5 log-files node.js winston
我在我的app目录中找不到'test.log'文件?
下面的代码在server.js中
var winston = require('winston'), mylogger = new (winston.Logger)({
transports: [
new (winston.transports.Console) (),
new (winston.transports.File) ({filename: 'test.log'})
]
});
mylogger.log('Hello world');
Run Code Online (Sandbox Code Playgroud)
我的app目录:
/
app/
config/
public/
server.js
Run Code Online (Sandbox Code Playgroud)
有趣的问题。查看文件传输的源代码,如果未指定,则目录似乎是从文件名参数本身派生的。似乎建议您使用绝对路径或明确指定目录的相对路径。
这条线是计算绝对路径的地方。
var fullname = path.join(self.dirname, target);
Run Code Online (Sandbox Code Playgroud)
self.dirname 在这里设置:
this.dirname = options.dirname || path.dirname(options.filename);
Run Code Online (Sandbox Code Playgroud)
所以问题是,如果 options.filename 不包含目录,那么 path.dirname 返回什么?
我实际上不知道,但我怀疑有两种可能性:
undefined
+ undefined
'/test.log' 是 '/test.log'您可以采取两个步骤:
https://github.com/flatiron/winston/blob/master/lib/winston/transports/file.js
归档时间: |
|
查看次数: |
4602 次 |
最近记录: |