第三百零六节 Log4j教程 - Log4j日志级别

Log4j教程 - Log4j日志级别

org.apache.log4j.Level类具有以下级别。

我们还可以通过对Level类进行子类化来定义我们的自定义级别。

级别 描述
ALL 所有级别包括自定义级别。
DEBUG 调试消息日志。
ERROR 错误消息日志,应用程序可以继续运行。
FATAL 严重错误消息日志,必须中止运行应用程序。
INFO 信息消息。
OFF 最高可能的排名,旨在关闭日志记录。
TRACE 高于DEBUG。
WARN 用于警告消息。

控制级别

在Log4j中,级别是有序的。

如果A>= Y,则在级别为Y的记录器中启用级别X的日志请求。

对于标准级别,我们有ALL <DEBUG<INFO<WARN<ERROR<FATAL<OFF。

以下示例显示如何过滤所有DEBUG和INFO消息。

它使用logger方法 setLevel(Level.XXX)设置所需的日志记录级别。

以下代码打印除Debug和Info之外的所有消息:

复制代码
import org.apache.log4j.*;

public class Main {
   private static org.apache.log4j.Logger log = Logger
                                    .getLogger(Main.class);
   public static void main(String[] args) {
      log.setLevel(Level.WARN);

      log.trace("Trace Message!");
      log.debug("Debug Message!");
      log.info("Info Message!");
      log.warn("Warn Message!");
      log.error("Error Message!");
      log.fatal("Fatal Message!");
   }
}

当你编译和运行LogClass程序时,它将产生以下结果:

复制代码
Warn Message!
Error Message!
Fatal Message!

使用配置文件设置级别

我们可以使用Log4j配置文件来控制日志级别设置,而不更改源代码。

以下代码显示如何通过配置文件执行log.setLevel(Level.WARN)。

复制代码
# Define the root logger with appender file
log = c:/log4j
log4j.rootLogger = WARN, FILE

# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${log}/log.out

# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n

现在让我们使用我们的下面的程序:

复制代码
import org.apache.log4j.*;

public class Main {
   private static org.apache.log4j.Logger log = Logger.getLogger(Main.class);
   public static void main(String[] args) {
      log.trace("Trace Message!");
      log.debug("Debug Message!");
      log.info("Info Message!");
      log.warn("Warn Message!");
      log.error("Error Message!");
      log.fatal("Fatal Message!");
   }
}
相关推荐
安冬的码畜日常5 小时前
【JUnit实战3_26】第十五章:表现层测试(下)—— Selenium 在网页测试中的用法
selenium·测试工具·junit·gui测试·junit5·表现层测试
千里镜宵烛1 天前
Lua--数据文件和持久性
开发语言·junit·lua
安冬的码畜日常1 天前
【JUnit实战3_23】 第十四章:JUnit 5 扩展模型(Extension API)实战(上)
测试工具·junit·单元测试·jdbc·h2·extension模型·junit5扩展
慧都小项2 天前
Parasoft C/C++test如何在ARM DS-5环境中进行测试(下)
单元测试·parasoft·arm ds-5
安冬的码畜日常2 天前
【JUnit实战3_21】第十二章:JUnit 5 与主流 IDE 的集成 + 第十三章:用 JUnit 5 做持续集成(上):在本地安装 Jenkins
junit·eclipse·jenkins·intellij idea·持续集成·junit5·netbeans
JosieBook2 天前
【SpringBoot】30 核心功能 - 单元测试 - JUnit5 单元测试简介与常用注解实战详解
spring boot·后端·单元测试
l1t2 天前
对luasql-duckdb PR的测试
c语言·数据库·单元测试·lua·duckdb
l1t2 天前
利用DeepSeek辅助改写luadbi-duckdb支持日期和时间戳数据类型
c语言·数据库·人工智能·junit·lua·duckdb·deepseek
卓码软件测评3 天前
单元测试、集成测试和系统测试的联系和区别是什么?
功能测试·单元测试·测试用例·集成测试·可用性测试
安冬的码畜日常3 天前
【JUnit实战3_20】第十一章:用 Gradle 运行 JUnit 测试实战
测试工具·junit·单元测试·gradle·软件构建·groovy·junit5