express如何记录日志并写入文件

1、使用express自带的模块
var logFile = fs.createWriteStream('./apkAnalysis.log', {
    "flags": "a"
});
app.configure(function(){
  app.use(express.logger({stream: logFile}));
});
这段代码是加在app.js中的,但是我发现一个问题,这个日志它只记录其他客户端对服务器的访问信息,如下图是我用chrom访问我的服务器


2、使用winston模块
使用它之前我们首先得把它安装到项目里:
    首先进入项目文件夹,然后npm install   winston

下面我们就可以引用它了,我是在app.js中引入的:
var winston=require('winston');
var logger = new (winston.Logger)({
    transports: [
        new (winston.transports.Console)(),
        new (winston.transports.File)({ 
            filename: './apkAnalysis.log',
            timestamp:'true', 
            maxsize: 10485760, //日志文件的大小
            maxFiles: 10 })
    ]});
当我们需要记录日志文件的时候我们可以这样写:
logger.log('info', 'Test LogMessage', { anything: 'This is metadata' });

当我们runapp.js的时候就会在
apkAnalysis.log中看到如下图:


为了方便我在项目目录下面新建了一个config文件夹,然后在config文件夹里新建了一个文件//logger.js
var winston=require('winston');

var logger = new (winston.Logger)({
    transports: [
        new (winston.transports.Console)(),
        new (winston.transports.File)({
            filename: './apkAnalysis.log',
            timestamp:'true',
            maxsize: 10485760,
            maxFiles: 10 })
    ]});

exports.logger=logger;


之后在其他js文件调用它就很方便了,例如我在app.js中调用它,我会先引入它:
var logs=require('./config/logger.js');
使用它的时候就很方便了:
logs.logger.log('info',"Express server listeningon port  3000" );
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值