1

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

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

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

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

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

4

3 回答 3

7

我遇到了同样的问题并使用了以下内容:

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

请参阅no-path-concat ESLint 规则以获取有关为什么使用path.join而不是常规连接的信息。

于 2016-02-04T21:51:00.397 回答
2

我使用了下一个解决方案(作为 的参数createLogger):

transports: [
    new transports.File({ filename: './src/logger/error.log', level: 'error' }),
    new transports.File({ filename: './src/logger/rest.log' })
]
于 2020-04-20T21:05:19.200 回答
1

在我的脑海中,尝试使用“data.log”而不是“./data.log”。

您必须包含用于配置和记录 Winston 的代码,以便我们提供帮助。

当你说你在本地安装winston时,你的意思是什么?

如果文件被指定为 './data.log' 并写入您的主文件夹,那么运行时的当前工作目录可能就是您的主文件夹。您是否从主文件夹运行节点程序?

于 2013-07-25T04:08:56.050 回答