【Express+TypeScript+MongoDB】日志记录(Log4js)

服务端需要配置日志记录,由此来减少问题排查的成本

Log4js安装和配置

npm install log4js

新建 ./config/log4js.ts文件,写入


import log4js from 'log4js';

const config = {
  appenders: {
    debug: {
      type: 'console'
    },
    info: {
      type: 'dateFile',
      filename: 'logs/info',
      pattern: '-yyyy-MM-dd.log',
    },
    //错误日志 type:过滤类型logLevelFilter,将过滤error日志写进指定文件
    errorLog: { type: 'dateFile', filename: 'logs/error', pattern: '-yyyy-MM-dd.log'},
    error: { type: "logLevelFilter", level: "error", appender: 'errorLog' }
  },
  categories: {
    default: { appenders: ['debug','info','error'], level: 'debug' },
    info: {appenders: ['info','error'], level: 'info'}
  }
}

log4js.configure(config);
export default log4js;

在./src/app.ts中引入Log4js

...
import Log4js  from './config/log4js';

class App {
  public app: express.Application;
  constructor() {
    this.app = express();
    this.initLog4js();
    ...
  }

  ...

  private initLog4js() {
    const logger = Log4js.getLogger('http');
    this.app.use(Log4js.connectLogger(logger, {level: 'info'}))
  }
}

export default new App().app;

使用方式:在其他文件中引入和app.ts中雷同

import Log4js from '../config/log4js';
const Logger = Log4js.getLogger('UserModel');

...
  public findById = (id) => {
    return new Promise((resolve) => {
      let result: any = null;
      const query = user.findById(id, UserModel.FILTER_PWD);
      query.exec((err, data) => {
        if(err){
          Logger.error('findById ===== SQL result is error:', JSON.stringify(err));
        }else {
          Logger.info('findById ===== result: ',JSON.stringify(data));
          result = data;
        }
        resolve(result);
      });
    });
  }
...

 

参考

Log4js github

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值