首页 > 编程知识 正文

日志级别从高到低,哪些可以作为日志级别

时间:2023-05-03 06:43:08 阅读:28433 作者:2527

目录log4js基本上使用log4js安装来配置控制台输出和文件输出结果。 log4js配置介绍了如何将appender (目标) categories策略)的不同级别的日志输出输出输出到不同的文件包logger.js

log4js基本上使用log4js的安装

NPM安装log4j s

控制台输出和文件输出设置constlog4js=require(log4js ) ) log4js.configure ) appenders: ) consoleout: ) type: ) console ) //控制台输出layout:(type:'colored )、使用color模式使控制台输出分类更清晰)、)、file out : (type : ' file )、filenanal /打入文件位置的pattern: 'yyyy-MM-dd.log ', 如果使用//正则表达式按天或按天划分日志,则日志文件名包含以前设置的pattern信息(默认值为false,但强烈建议打开)、categories: )和defaull ) consoleout、)、) append //环境变量中不同的日志级别level : process.env.node _ env==' development '? ' all' : 'info ',},} const logger=log4j s.getlogger (default ' ) logger.debug (调试程序) ) logger .

log4js配置介绍在上面的示例中,您可以看到配置中包含了appender (目标)和category (目录)。 对各自的结构进行说明

使用appender (输出位置) appenders : (控制台out : ) type: (控制台)、layout: ) type: (颜色) color模式进行控制台//文件filename : ` $ { _ _ dirname }/./logs/logger `,//目标pattern3360日志可以按规则分为不同的文件。 alwaysIncludePattern: true, 如果为true,则log文件名包含以前设置的pattern信息(默认值为false,但强烈建议您打开(),error: ) type3360'file '

type是日志输出方式,有控制台输出和文件输出,分别对应“‘console”、“‘file”;

layout是log4js为用户定义输出内容而提供的自定义功能,包含四个属性。

消息路径:仅输出日志内容; basic :在日志内容前添加时间、日志级别和类别,通常是日志的默认布局; colored/coloured :根据basic为日志着色。 appender Console默认情况下使用的是此布局。 pattern :这是一种特殊类型,可以定义所需的格式。 filename、type为file时规定的输出日志文件的位置和名称;

pattern的输出文件名的定义。 根据示例,可以按日期划分日志文件。

alwaysIncludePattern与pattern配合使用,让文档名称对pattern的内容进行保证书;

categories (策略) categories: ) default: ) appenders:('consoleout ',' fileOut'] ',//环境变量具有不同的日志级别level

个对象名称(key)是对策略的一种定义,如这里的‘default’;appenders,数组,可以将appenders中定义的名称写到这里,也就说明使用当前策略的话,则采用你定义的这两种输出方式;level, 输出日志的级别,具体级别参数如下图所示,向高级别包含,若level设置为info,则包含:info、warn、error、fatal、粗暴的荷花
不同级别的日志输出至不同文件

若是需要将不同级别的日志输出到不同文件内,则首先我们需要配置不同的策略,并设置不同的级别,然后设置两个logger,并将两个logger整合到一起,这样外部使用就可以不用特意选择logger,这里我需要将日志从warn分为两种,代码如下:

封装logger.js // logger.jsconst log4js = require('log4js')log4js.configure({ appenders: { consoleOut: { type: 'console', layout: { type: 'colored', }, }, default: { type: 'file', filename: `${__dirname}/../../logs/logger`, pattern: 'yyyy-MM-dd.log', alwaysIncludePattern: true, // 当为 true 时,log 文件名会包含之前设置的 pattern 信息 (默认为 false,但是强烈建议开启) }, error: { type: 'file', filename: `${__dirname}/../../logs/error.log`, alwaysIncludePattern: true, }, }, categories: { default: { appenders: ['consoleOut', 'default'], level: 'all', }, error: { appenders: ['consoleOut', 'error'], level: 'warn', }, },})const defaultLogger = log4js.getLogger('default') // 普通级别的logger,输出到控制台和日期分类的文件const errorLogger = log4js.getLogger('error') // 错误信息的logger,输出到控制台和error.log中module.exports = { // info及以下级别的日志采用default策略,使用call函数改变this指向,否则会导致logger内部this指向报错 trace() { return defaultLogger.trace.call(defaultLogger, ...arguments) }, debug() { return defaultLogger.debug.call(defaultLogger, ...arguments) }, info() { return defaultLogger.info.call(defaultLogger, ...arguments) }, // warn及以上的日志采用error策略 warn() { errorLogger.warn.call(errorLogger, ...arguments) }, error() { errorLogger.error.call(errorLogger, ...arguments) }, fatal() { errorLogger.fatal.call(errorLogger, ...arguments) }, 粗暴的荷花() { errorLogger.粗暴的荷花.call(errorLogger, ...arguments) },} 使用 // index.jsconst logger = require('./src/utils/logger')logger.trace('trace log')logger.debug('debug log')logger.info('info log')logger.warn('warn log')logger.error('error log')logger.fatal('fatal log')logger.粗暴的荷花('粗暴的荷花 log') 结果




搞定,拿走不谢。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。