Node.js使用logger日志

99 阅读1分钟

我们用Node.js写Web API项目的时候,在不用到大型框架,而只是用像Express、Koa等这种微型框架来完成一些小型服务的时候很需要一个日志记录的功能,当然非Web项目也可以使用。

安装

yarn add log4js

你也可以使用Npm工具

npm i log4js

配置

utils/log.js

这是ES6写法,后续出Typescript (☄⊙ω⊙)☄

// 引入库
const log4js = require('log4js')
// 设置配置
log4js.configure({
	appenders: {
		// 选择打印到控制台
		ruleConsole: {
			type: 'console'
		},
		// 文件日志
		ruleFile: {
			type: 'dateFile',
			// 这个目录是相对于根目录的,即与app.js 是同一级的
			filename: 'logs/server',
			pattern: 'yyyy-MM-dd.log',
			// 最大大小
			maxLogSize: 10 * 1000 * 1000,
			numBackups: 3,
			// 是否异步读写
			alwaysIncludePattern: true
		}
	},
	categories: {
		default: {
			appenders: ['ruleConsole', 'ruleFile'],,level: 'info'
		}
	}
});
// 注册
let logger = log4js.getLogger('normal')

export default logger

使用

  • Node.js
	const logger = require('utils/log')

	logger.info('信息')
	logger.error('错误')
	logger.warn('警告')
	logger.debug('调试')
	logger.fatal('测试');
	logger.trace('Entering app testing');
  • Express
	const log4js = require('log4js')
	// 配置
	.....
	const logger = require('utils/log')
	// 结合Express使用,记录请求日志
	app.use(log4js.connectLogger(logger))

末尾