关于Node的后台日志功能
发布于 8 年前 作者 hengguoguo 18964 次浏览 最后一次编辑是 5 年前

代码如下:问题是:1、访问日志文件没有被写入 2、这俩文件怎么把他们创建在和服务端启动文件在同一个目录下

fs = require('fs'),
    accessLogfile = fs.createWriteStream('./logs/access.log', {flags: 'a'}), //访问日志
    errorLogfile = fs.createWriteStream('./logs/error.log', { flags: 'a' }); //错误日志

app.configure('production', function () {
    app.use(express.logger({ stream: accessLogfile }));
    app.use(function (err, req, res, next) {
        var now = new Date();
        var time = now.getFullYear() + '-' + now.getMonth() + '-' + now.getDate() + ' '
            + now.getHours() + ':' + now.getMinutes() + ':' + now.getSeconds();
        var meta = '[' + time + '] '+req.method+' ' + req.url + '\r\n';
        errorLogfile.write(meta + err.stack + '\r\n\r\n\r\n');
        next();
    });
});
6 回复

@bsspirit 我试过log4js 但是不知道为什么只能写入访问信息,错误信息无法写入,而且文件也没法放到和启动文件同目录下。请指点

  1. 错误日志: 访问错误通过Level配置
  2. 系统错误: 通过程序判断,用程序输出 logger.error(‘Cheese is too ripe!’);
  3. 输出目录:filename: ‘logs/access.log’,

@bsspirit 错误输出搞定了,只是文件的创建位置还是会在我的C盘(系统盘),这个是不是和环境变量有关系?

你把log4js的配置,整个贴出来

我的项目没有单独做日志设置,因为项目是用 forever 启动的,forever 本身具有日志记录功能

回到顶部