【问题标题】:how to set winston log path to project local folder如何将winston日志路径设置到项目本地文件夹
【发布时间】:2013-07-24 14:31:17
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: node.js path winston


    【解决方案1】:

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

    transports: [
        new transports.File({ filename: './src/logger/error.log', level: 'error' }),
        new transports.File({ filename: './src/logger/rest.log' })
    ]
    

    【讨论】:

      【解决方案2】:

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

      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 而不是常规连接。

      【讨论】:

        【解决方案3】:

        别想了,尝试使用“data.log”而不是“./data.log”。

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

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

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

        【讨论】:

        • 我没有从项目主文件夹运行“node myproject”。您是对的,当前文件夹设置在您运行节点的位置。
        猜你喜欢
        • 2012-06-11
        • 1970-01-01
        • 2011-01-24
        • 1970-01-01
        • 2012-03-14
        • 1970-01-01
        • 2015-04-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多