log日志级别与简介

log4j定义了8个级别的log(除去OFF和ALL,可以说分为6个级别),优先级从高到低依次为:OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、 ALL。

 分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、ALL或者您定义的级别。Log4j建议只使用四个级别,优先级 从高到低分别是 ERROR、WARN、INFO、DEBUG。  日志记录器(Logger)的行为是分等级的:

 

 日志记录器(Logger)是日志处理的核心组件。log4j具有5种正常级别(Level)。:

1.static Level DEBUG :

DEBUG Level指出细粒度信息事件对调试应用程序是非常有帮助的。

2.static Level INFO

INFO level表明 消息在粗粒度级别上突出强调应用程序的运行过程。

3.static Level WARN

WARN level表明会出现潜在错误的情形。

4.static Level ERROR

ERROR level指出虽然发生错误事件,但仍然不影响系统的继续运行。

5.static Level FATAL

FATAL level指出每个严重的错误事件将会导致应用程序的退出。

 

另外,还有两个可用的特别的日志记录级别:

1.static Level ALL

ALL Level是最低等级的,用于打开所有日志记录。

2.static Level OFF

OFF Level是最高等级的,用于关闭所有日志记录。

log的主要节点

log配置文件主要包含三个节点:Logger、Appender、Layout。
Logger:配置打印日志的级别,输出日志的程序范围,以及关联的Appender。
Appender:配置日志的输出形式,输出策略等。
Layout:配置每条日志的内容格式。

配置log4j.properties文件,示例:
#配置根节点
log4j.rootLogger=INFO,Log4jConsole,Log4jFile
#log不向上层传递
log4j.additivity.org.appache=false
#设置变量,保存路径 ${catalina.home}/logs
logDir=D:/tomcat/logs
 
#控制台输出
log4j.appender.Log4jConsole=org.apache.log4j.ConsoleAppender
log4j.appender.Log4jConsole.Threshold=INFO
log4j.appender.Log4jConsole.ImmediateFlush=true
log4j.appender.Log4jConsole.Target=System.out
#输出格式
log4j.appender.Log4jConsole.layout=org.apache.log4j.PatternLayout
log4j.appender.Log4jConsole.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH:mm:ss,SSS}] [%c:%M:%L] %m%n
 
#文件输出
log4j.appender.Log4jFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.Log4jFile.Threshold=INFO
log4j.appender.Log4jFile.ImmediateFlush=true
log4j.appender.Log4jFile.Append=true
log4j.appender.Log4jFile.File=${logDir}/log4j.log
log4j.appender.Log4jFile.DatePattern='.'yyyy-MM-dd


#输出格式
log4j.appender.Log4jFile.layout=org.apache.log4j.PatternLayout
log4j.appender.Log4jFile.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH:mm:ss,SSS}] [%c:%M:%L] %m%n

### 日志级别排序规则及其配置方法 日志级别的排序规则通常是基于优先级来定义的,其中较低的日志级别会捕获更多的信息,而较高的日志级别则仅记录更严重的信息。常见的日志级别按照优先级从低到高排列如下:`TRACE`, `DEBUG`, `INFO`, `WARN`, `ERROR`, `FATAL`[^3]。 #### 动态调整日志级别 在实际应用中,为了满足不同环境的需求(如开发、测试和生产),可以通过多种方式实现日志级别的动态调整。传统的方式是通过配置文件静态设置日志级别,例如 `application.properties` 或 `logback.xml` 文件[^1]。然而,这种静态配置缺乏灵活性,尤其是在需要实时调整的情况下。 一种更为灵活的方法是利用外部工具或框架的功能,允许运行时修改日志级别。例如,在某些日志管理系统中,可以直接通过 Kibana 管理界面或其他监控平台查看并调整日志级别[^4]。 #### 配置日志级别排序规则 以下是几种常见日志框架中如何配置日志级别的示例: 1. **Log4j/Log4Qt** Log4j 的根配置语法为: ```properties log4j.rootLogger=[level], appenderName1, appenderName2,... ``` 其中 `[level]` 表示日志级别,可以设置为 `DEBUG`, `INFO`, `WARN`, `ERROR`, 或者其他自定义级别。Appender 则指定了日志输出的目标位置,例如控制台 (`CONSOLE`) 或文件 (`FILE`) 等。 2. **Spring Boot (Logback)** Spring Boot 使用 Logback 作为默认日志框架,其配置通常位于 `application.properties` 或 `logback-spring.xml` 文件中。以下是一个简单的例子: ```properties logging.level.root=INFO logging.level.com.example=DEBUG ``` 上述配置表示全局日志级别设为 `INFO`,但对于 `com.example` 包下的类,则启用更详细的 `DEBUG` 日志[^1]。 3. **Kibana 和 ELK 堆栈** 在 Kibana 中,虽然无法直接更改日志级别,但可以通过 Elasticsearch 查询语句筛选特定级别的日志数据。例如,使用以下查询条件查找错误日志: ```json { "query": { "match": { "log_level": "error" } } } ``` 此外,还可以结合 Grok 解析器对非结构化日志进行处理,并提取出日志级别字段用于后续分析[^4]。 #### 自定义日志级别排序规则 如果标准的日志级别不足以满足项目需求,也可以创建自己的日志级别体系。这通常涉及扩展现有的日志框架功能或将新的逻辑嵌入应用程序代码中。需要注意的是,任何自定义方案都应保持清晰一致的设计原则,以免增加维护成本。 --- 问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值