log4js使用

724 阅读1分钟

一款nodejs中的日志输出插件

官网:log4js-node.github.io/log4js-node…

封装以及简单使用

封装

// utils/log4j.js

const log4js = require('log4js') // 引入log4js

/**
 * 日志等级统一管理
 */
const level = {
    trace: log4js.levels.TRACE,
    debug: log4js.levels.DEBUG,
    info: log4js.levels.INFO,
    warn: log4js.levels.WARN,
    error: log4js.levels.ERROR,
    fatal: log4js.levels.FATAL,
}

/**
 * 配置项
 */
log4js.configure({
    appenders: {
        // 追加器
        console: {
            // 输出方式
            type: 'console',
        },
        info: {
            type: 'file',
            filename: 'logs/InfoLog.log',
        },
        error: {
            type: 'dateFile', // 有很多种状态,详见官网
            filename: 'logs/log',
            pattern: 'yyyy-MM-dd.log',
            alwaysIncludePattern: true, // 设置文件名称为 filename + pattern
        },
    },
    categories: {
        default: {
            // 默认存在的
            appenders: ['console'], // 可输出的方式(传上面定义好的名字)
            level: 'debug', // 触发级别
        },
        info: {
            // 自定义的info
            appenders: ['info'],
            level: 'info',
        },
        error: {
            // 自定义的error
            appenders: ['error'],
            level: 'error',
        },
    },
})

//****** 这里导出3种写日志的方式 ******
exports.debug = (content) => {
    let logger = log4js.getLogger()
    logger.level = level.debug
    logger.debug(content)
}

exports.info = (content) => {
    let logger = log4js.getLogger('info') // 注意:info要传入getLogger()中
    logger.level = level.info
    logger.info(content)
}

exports.error = (content) => {
    let logger = log4js.getLogger('error')
    logger.level = level.error
    logger.error(content)
}

使用

// 需要使用的地方

// 1.引入刚刚封装的插件
const log4j = require('./utils/log4j')

// logger
app.use(async (ctx, next) => {
    await next()
    log4j.info('我的日志') // 基础使用
})