Log4j教程

Log4J 日志记录级别

Log4J 日志级别

日志级别用于对日志文件中的条目进行分类。但它们以非常具体的方式进行分类,即按紧急程度分类。该级别允许您分离以下类型的信息:
您可以在搜索过程中过滤您的日志文件。 您可以管理您记录的信息量。
系统中给出的信息量和类型,以及事件日志由配置文件中的log4j级别设置控制。每条日志消息都以消息级别为前缀。
日志级别是 org.apache.log4j.Level 类的一个实例。
Log4j 具有以下日志级别:
日志级别 说明
全部 此级别打开所有级别的日志记录。它包括您定义的自定义日志记录级别。一旦配置了这个并且完全不考虑级别,那么所有appender将开始将日志事件倒入日志文件中。
调试 Debug 经常用于在开发时调试应用程序。设置此级别后,每条日志消息都会出现在日志文件中。基本上属于开发者。
信息 INFO 日志级别用于记录有关常规应用程序操作的消息。系统管理员实时查看信息日志,以确保系统当前发生的情况,以及正常流程中是否存在任何问题。
警告 WARN 日志级别用于指示您可能遇到问题并且您已检测到异常情况。也许您要求调用服务,但在自动重试连接之前失败了几次。这是出乎意料和不寻常的,但没有造成真正的伤害,也不知道问题会持续存在还是再次发生。有人应该调查警告。
错误 ERROR 日志级别用于表示必须立即调查的严重问题。没有FATAL那么严重,但仍然是一个问题。它只是意味着您的应用程序遇到了真正不受欢迎的状态。例如,意外的格式化输入、数据库不可用。
致命 FATAL 日志级别,如 ERROR,表示存在问题。但与 ERROR 不同的是,它表示非常严重的错误事件。在平常的日子里,你不会很在意它们的存在,但一旦它们出现,就预示着非常坏的消息,甚至是死亡的应用。
关闭 这是可能的最高等级,旨在关闭日志记录。
跟踪 最近在 1.2 版中引入了此功能,其中包含有关调试级别日志的更多信息。

如何设置日志级别?

在log4j.properties中设置日志级别
log4j.rootLogger=DEBUG, consoleAppender
log4j.appender.consoleAppender=org.apache.log4j.ConsoleAppender
log4j.appender.consoleAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.consoleAppender.layout.ConversionPattern=[%t] %-5p %c %x-%m%n
 
#Log info messages for package 'com.lidihuo.web.controller'
log4j.logger.com.lidihuo.web.controller=INFO, consoleAppender
在 log4j.xml 中设置日志级别
<log4j:configuration debug="true" xmlns:log4j='http://jakarta.apache.org/log4j/'>
  
  <appender name="console" class="org.apache.log4j.ConsoleAppender">
    <param name="Target" value="System.out"/>
    <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L-%m%n" />
    </layout>
  </appender>
 
  <logger name="com.lidihuo.web.controller">
    <level value="INFO" />
    <appender-ref ref="console" />
  </logger>
  
  <root>
    <level value="DEBUG" />
    <appender-ref ref="console"></appender>
  </root>
  
</log4j:configuration>

日志级别是如何工作的?

日志级别的工作其实很简单。在运行时,应用程序代码将创建日志请求,这将具有一个级别。同时,日志框架配置了日志级别,作为阈值。如果请求级别处于配置级别或更高级别,则会将其记录到配置的目标中。如果没有,则拒绝。就这么简单。
让我们将其视为以下级别的排名顺序:
ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF
因此,例如,如果日志框架级别设置为 WARN,则将接受具有任何级别 WARN、FATAL 和 ERROR 的请求,而其余请求将被拒绝。
Log4J Logging Levels
在上图中,垂直标题显示 LogEvent 的级别,而水平标题显示关联的级别使用适当的日志配置。
对于第一列,您将看到日志在每个级别中的工作方式。例如,对于 WARN,(FATAL、ERROR 和 WARN) 将是可见的。对于OFF,什么都看不到。

Log4j 级别示例

配置文件:
# Define the root logger with appender file
log = /usr/home/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
Java 程序:
import org.apache.log4j.*;
public class Logclass {
   private static org.apache.log4j.Logger log = Logger.getLogger(LogClass.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!");
   }
}
现在编译并运行上面的程序,我们将在 c:/usr/home/log4j/log.out 文件中得到如下输出:
     Warn Message!
Error Message!
Fatal Message!
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4