如何将winston日志路径设置为项目本地文件夹

时间:2013-07-24 14:31:18

标签: node.js path winston

我在本地安装了winston,并指定了日志文件名:'。/ dataTest.log'。

var winston = require('winston');
winston.add(winston.transports.File, { filename: './dataTest.log' });

但是我发现日志文件位于用户主文件夹中。 (这是/用户/用户名我在Macos上)。为什么?我希望它能够放在mynodeproject / public文件夹中。

尝试将路径设置为'dataTest.log',结果相同。

编辑:这可能与节点有关吗?那么如何在节点中设置相对路径?

3 个答案:

答案 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' })
]