安装
基本使用
const Koa = require('koa')
const log4js = require('log4js') // 引入log4js
const app = new Koa()
const logger = log4js.getLogger() // 获得日志对象
logger.debug('我是debug级别的日志信息') // 使用日志对象
app.listen(3000, () => {
console.log('listen 3000 ok');
})
- 日志等级: trace 0 , debug 1 , info 2 , warn 3 , error 4 , fatal 5
进价使用1
const Koa = require('koa')
const log4js = require('log4js') // 引入 log4js
const app = new Koa()
// 配置 log4js
log4js.configure({
appenders: {
// 配置一个 default 对象, type代表输出文件类型 filename代表输出文件名
default: { type: 'file', filename: 'default.log' },
// 配置了一个 cheese 对象 type代表输出文件类型 filename代表输出文件名
cheese: { type: 'file', filename: 'cheese.log' },
},
categories: {
// 默认 default 分类, 触发 debug 级别日志时会使用 default 对象处理
default: { appenders: ['default'], level: 'debug' },
// 自定义一个 cheese 分类, 触发 error 级别日志时会使用 cheese 和 debug 对象处理
cheese: { appenders: ['default', 'cheese'], level: 'error' }
}
})
// 获取默认日志对象
const logger = log4js.getLogger()
logger.debug('只会使用 categories 对象中的 default 对象的配置处理该日志')
// 获取自定义cheese对象日志
const loggerCheese = log4js.getLogger('cheese')
loggerCheese.error('使用 categories 对象中的 cheese 对象的配置来处理该日志')
app.listen(3000, () => {
console.log('listen 3000 ok');
})
- 引入 log4js
- 调用 log4js.configure 函数进行配置,
- appenders 对象中 key 用于配置日志输出的文件类型和文件名,
- categories 对象中的 key 是一个对象,该对象中 appenders 是一个数组,该数组中的每个成员与 appenders 对象中的 key 自动会形成映射关系, level 代表日志级别,触发该级别日志时,会使用 appenders 数组成员映射的 appenders 对象中的 key 处理
- 调用 log4js.getLogger 函数,没有传递参数时会使用 categories 对象中的 default 配置进行处理,如果传递了 cheese 参数,则会使用 categories 对象中的 cheese 配置进行处理
- 调用 log4js.getLogger 函数会返回一个日志对象,该对象触发对应级别日志时会使用 appenders 数组映射的 appenders 对象中的 key 进行日志存储
进价使用2 日志分类
const Koa = require('koa')
const log4js = require('log4js') // 引入 log4js
const CONFIG = require('./config/config')
const app = new Koa()
// 配置 log4js
log4js.configure({
appenders: {
error: {
category: 'errorLogger', // logger 名称
type: 'dateFile', // 日志类型
filename: 'logs/error/error', // 日志输出位置
alwaysIncludePattern: true, // 是否有后缀名
pattern: 'yyyy-MM-dd-hh.log', // 后缀 每一小时创建一个新的日志文件
},
response: {
category: 'responseLogger',
type: 'dateFile',
filename: 'logs/response/response',
alwaysIncludePattern: true,
pattern: 'yyyy-MM-dd-hh.log'
}
},
categories: {
error: {
appenders: ['error'],
level: 'error'
},
response: {
appenders: ['response'],
level: 'info',
},
default: {
appenders: ['response', 'error'],
level: 'error'
}
}
})
// 获取默认日志对象
// const logger = log4js.getLogger()
// logger.error('只会使用 categories 对象中的 default 对象的配置处理该日志')
// 获取自定义response对象日志
const loggerCheese = log4js.getLogger('response')
loggerCheese.info('使用 categories 对象中的 response 对象的配置来处理该日志')
app.listen(3000, () => {
console.log('listen 3000 ok');
})