如何写入Node.js Connect / Expresslogging器?
我有一个Express项目,我已经设置login到一个文件:
logPath = '/mnt/log/api.log' logfile = fs.createWriteStream logPath, {flags: 'a'} loggingOptions = format: 'default' stream: logfile app.use express.logger(loggingOptions)
这适用于logging请求,但我想添加自己的消息到日志,但我不知道如何。 console.log
没有redirect,并且似乎没有创build可以写入的“logging器”对象。
那么我唯一的select就是传递一个对文件stream的引用并写入这个引用?
我不知道如何去做你正在问的东西,但是这是我所做的,到目前为止它运作良好。
我configuration快速logging器(实际上是连接logging器,如果你正在寻找文档),如下所示,所有的日志输出到标准输出。 我可以用console.log(“blah blah”)打印到相同的输出。
app.use(express.logger("default"));
在生产服务器上,我将节点的所有输出redirect到日志文件。
这在开发过程中也能很好地工作,因为我在shell窗口中运行节点,可以看到所有相同的输出。 (实际上我在开发过程中使用了express.logger(“dev”),因为输出对于开发工作来说是非常干净的。)
您可以创build自己的日志logging中间件:
app.use (req, res, next) -> logFile.write "anything you want" next()
定义像其他中间件一样的error handling中间件,除了四个参数而不是三个,特别是签名(err,req,res,next)):
app.use(function(err, req, res, next){ console.error(err.stack); res.status(500).send('Something broke!'); });
- express.js消息中的新行
- 代理服务器与Node.js上的Express包装callback多次
- 是否有可能在单个node.js项目中使用两个不同版本的npm模块?
- NodeJS Sequelize – 无法读取未定义的属性'_isSequelizeMethod'
- Node.js / jade – 我如何将mysql数据作为本地variables传递给内联javascript?
- Route.all()需要callback函数,但得到)=>,然后显示404错误
- EmberJS Express API | TypeError:app.route不是module.exports的函数
- 运行应用程序时使用multer导致错误
- 如何为具有参数和关系的方法编写远程钩子