使用Winston Logger无法登录/ var / log

时间:2018-07-20 21:40:09

标签: javascript node.js express winston

我已经尝试了十多个小时,以找到一种利用Winston登录到我的fedora系统上的/ var / log目录的方法,但是它不起作用。

我使用express创建一个项目只是为了测试Winston,当我尝试登录我的项目目录时,它可以正常工作,但是当涉及到以'〜'或'/'开头的任何位置时,都不会创建文件或日志并且不会引发任何错误或异常,请提供任何帮助。

我浏览了多个论坛,发现这是一个经常性的问题,但是我没有看到当前的问题,所以我想知道是否有解决方案。

2 个答案:

答案 0 :(得分:0)

Winston记录器的工作方式(如果我们提供了写入日志的文件路径),它将在提到的目录中搜索该文件(如果不存在),然后使用相同的名称进行创建。

但是在Unix系统中〜/ 类型的目录中,权限需要编写一些内容。如果您的控制台抛出错误,那么您肯定会得到如下所示的错误堆栈:

Error: EACCES: permission denied, open \'/var/log/your.log\

解决方法是:您可以在/var/log/your.log文件中创建一个文件,然后授予写权限。 sudo chmod a+w /var/log/your.log

  

是的,在任何允许写入的地方,它都可以很好地进入您的项目目录,这就是为什么。

答案 1 :(得分:0)

我的结论是,stackoverflow用户 Osman Goni Nahid 提到/建议最好的方法是手动创建文件,更改该文件的权限以进行访问,然后写入它在代码中是因为,如果winston没有对文件夹的权限,它只会运行其他进程,并且不会创建或写入文件,在我的情况下,我选择了一个更易于访问的位置,可以进行读写操作,因此我仍然保持我的文件自动创建功能,因为那是我项目中的关键。

谢谢卢卡斯S Osman Goni Nahid 的建议!

相关问题