koa2项目中封装log4js日志输出

1.日志输出到控制台

npm i log4js -D

封装log4js文件:

注意:每次都要重新获取log4js.getLogger('debug')级别才能生效

const log4js = require("log4js");

const levels = {
    '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' }
    },
    categories:{
        default: { appenders: ['console'], level: 'debug' },
    }
});

/**
 * 日志输出 level 为 debug
 */
exports.debug = (content) => {
//注意:每次都要重新获取log4js.getLogger('debug')级别才能生效
    let logger = log4js.getLogger('debug')
    logger.level = levels.debug
    logger.debug(content);
  }

exports.info = (content) =>{
    let logger = log4js.getLogger('info')
    logger.level = levels.info
    logger.info(content);
}

exports.warn = (content) =>{
    let logger = log4js.getLogger('warn')
    logger.level = levels.warn
    logger.warn(content);
}

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

app.js文件中引入并使用log4js

// 使用封装的log4j日志
const logger = require("./utils/log4js");

// logger
app.use(async (ctx, next) => {
  const start = new Date()
  await next()
  const ms = new Date() - start
  // console.log(`${ctx.method} ${ctx.url} - ${ms}ms`)
  // 使用log4j输出日志
  logger.info(`log4j输出日志:读取到log4js日志`);
  logger.info(`log4j输出日志:${ctx.method} ${ctx.url} - ${ms}ms`);
})

 

2.日志输出到日志文件

修改配置为输出到文件即可

const log4js = require("log4js");

const levels = {
    '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/info-logs.log'
        },
        error:{
            type: 'dateFile',
            filename: 'logs/error',
            pattern: 'yyyy-MM-dd.log',
            // 设置文件名称是 filename + pattern
            alwaysIncludePattern: true
        }
    },
    categories:{
        default: { appenders: ['console'], level: 'debug' },
        info: {
            appenders: ["info","console"],
            level: 'info'
        },
        error:{
            appenders: ["error","console"],
            level: 'error'
        }
    }
});

/**
 * 日志输出 level 为 debug
 */
exports.debug = (content) => {
    let logger = log4js.getLogger('debug')
    logger.level = levels.debug
    logger.debug(content);
  }

exports.info = (content) =>{
    let logger = log4js.getLogger('info')
    logger.level = levels.info
    logger.info(content);
}

exports.warn = (content) =>{
    let logger = log4js.getLogger('warn')
    logger.level = levels.warn
    logger.warn(content);
}

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

 

相关推荐

  1. nodejs之log4js日志管理

    2023-12-07 17:48:04       37 阅读
  2. 日志log4net 日志不能输出

    2023-12-07 17:48:04       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-07 17:48:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-07 17:48:04       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-07 17:48:04       82 阅读
  4. Python语言-面向对象

    2023-12-07 17:48:04       91 阅读

热门阅读

  1. 数据结构如何影响程序的错误检测和调试?

    2023-12-07 17:48:04       51 阅读
  2. Python 音频添加水印

    2023-12-07 17:48:04       45 阅读
  3. 关于FBPINN的讨论

    2023-12-07 17:48:04       49 阅读
  4. js实现元素可拖拽方法

    2023-12-07 17:48:04       64 阅读