我在本地安装了winston,并指定了日志文件名:'。/ dataTest.log'。
var winston = require('winston');
winston.add(winston.transports.File, { filename: './dataTest.log' });
但是我发现日志文件位于用户主文件夹中。 (这是/用户/用户名我在Macos上)。为什么?我希望它能够放在mynodeproject / public文件夹中。
尝试将路径设置为'dataTest.log',结果相同。
编辑:这可能与节点有关吗?那么如何在节点中设置相对路径?答案 0 :(得分:2)
我遇到了同样的问题并使用了以下内容:
var path = require('path');
var winston = require('winston');
winston.add(winston.transports.File, { filename: path.join(__dirname, '/dataTest.log') });
有关使用path.join
而不是常规连接的原因的信息,请参阅no-path-concat ESLint规则。
答案 1 :(得分:1)
在我的脑海中,尝试使用'data.log'而不是'./data.log'。
您必须包含用于配置和记录Winston的代码,以便我们提供帮助。
当你说你在本地安装winston时,你的意思是什么?
如果文件被指定为'./data.log'并且已写入您的主文件夹,则运行时期间当前的工作目录可能是您的主文件夹。您是否从主文件夹运行节点程序?
答案 2 :(得分:1)
我使用了下一个解决方案(作为createLogger
的参数):
transports: [
new transports.File({ filename: './src/logger/error.log', level: 'error' }),
new transports.File({ filename: './src/logger/rest.log' })
]