在 Java 中如何使用 Log4j 创建自己的日志记录级别(配置 Log4j 2)

已发表: 2017-07-26
在 Java 中如何使用 Log4j 2 创建自己的日志记录级别

如果您需要在 Log4j 中添加自己的日志记录级别,则可以按如下方式进行。 您将必须创建自己的类,该类将从Level扩展,使用 Apache Log4j 2 Custom Log Levels

Log4j是一个简单灵活的logging framework 。 日志记录为开发人员提供了应用程序故障的详细上下文。 使用 log4j 可以在运行时启用日志记录,而无需修改应用程序二进制文件。

log4j 包的设计使这些语句可以保留在交付的代码中,而不会产生沉重的性能成本。

如何在 Log4j 中创建自己的日志记录级别(配置 Log4j)

Log4j 允许记录请求打印到多个目的地。 在 log4j 中,输出目的地称为appender 。 它们从控制台、文件、GUI 组件、远程套接字服务器到 JMS 各不相同。

您需要的 Jar 文件。

这是一个 Maven 依赖项:

将 Log4j 更新到最新版本

CVE-2021-44228:Apache Log4j2 <=2.14.1 配置、日志消息和参数中使用的 JNDI 功能不能防止攻击者控制的 LDAP 和其他 JNDI 相关端点。

从 log4j 2.16.0 开始,默认情况下已禁用此行为。

您必须将log4j.xml文件放在/resources文件夹下:

资源文件夹中的 log4j.xml 文件

这是一个示例 Java 代码:

  • 用于 Java 中自定义日志级别的 Log4j 日志记录
  • 在 log4j 中创建自己的日志记录级别
  • log4j 自定义记录器示例

CrunchifyLog4jLevel.java

另一个必须阅读:

  • 如何通过命令行启动停止 Apache Tomcat 服务器? (设置为 Windows 服务)
  • 在 Eclipse 中创建和部署简单的 Web 服务和 Web 服务客户端

这是 log4j.xml 文件的内容

CrunchifyLog4jLevelTest.java

运行测试程序,您应该在Eclipse's Console中看到以下类型的结果。

您为日志级别指定的 int 值很重要。 这里我定义“ CRUNCHIFY ”日志级别要高于DEBUG级别但低于 log4j 提供的TRACE级别。

因此,只要您在类别(在您的log4j.xml文件中)将优先级设置为 DEBUG, CRUNCHIFY级别的日志就不会进入日志文件。