服务端需要配置日志记录,由此来减少问题排查的成本
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