javascript - 输出日志到/var/log/syslog

标签 javascript node.js logging

我们的旧系统使用 posix 模块输出到 /var/log/syslog,无需任何调整。但是这个 posix 包在 Node.js v10 中不再可用,我们不得不采用其他日志模块。

我们现在尝试使用 winston 模块代替它,我们的设置如下。

this.logger = winston.createLogger({
  levels: winston.config.syslog.levels,
  transports: [
    new winston.transports.Console(),
    new winston.transports.File({
      filename: '/var/log/syslog'
    })
  ]
});

但是我们无法在/var/log/syslog中获取任何日志,可能是由于权限问题。 有人对此有最好的解决方案吗? 我们想要做的是通过轻松设置将日志输出到 /var/log/syslog 中。

我认为最好的方法是更改​​目标文件,如果您没有更好的方法,请告诉我“更改目标文件”。

最佳答案

考虑到/var/log/syslog 是由系统实用程序管理的,您很可能确实存在权限问题。

无论如何,最快的解决方案是使用 npm 包 winston-syslog ,如果你看看文档就很容易配置

const winston = require('winston');

//
// Requiring `winston-syslog` will expose
// `winston.transports.Syslog`
//
require('winston-syslog').Syslog;

winston.add(new winston.transports.Syslog(options));

关于javascript - 输出日志到/var/log/syslog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56355783/

相关文章:

node.js - API授权策略

java - slf4j 记录器日志级别未正确继承

javascript - __ 应该只适用于柯里化(Currying)函数吗?为什么它在这里工作?

javascript - 如何使用 javascript 正确发布 x-www-form-urlencoded 数据?

javascript - 为 extjs 标记字段设置选定值

javascript - 如何使用 Angular4 将参数传递到服务中

javascript - 如何使用 webRTC、node.js 和 socket.io 构建多用户视频聊天网络应用程序

javascript - var/log/mongodb/mongod.log 从 node.js 打开和关闭连接的无限循环

php - Apache2 PHP docker容器,如何将错误记录为stderr并将信息作为stdout记录到容器日志?

javascript - 为什么页面是空白的?