Log4j.xml配置说明

介绍

Log4j 2 是一款广泛使用的 Java 日志框架,它支持多种日志级别、异步日志、过滤器等功能,并且具有高性能和可扩展性。以下是 Log4j 2 的详细配置说明:

  1. 配置文件名称和存放位置:Log4j 2 的配置文件名可以是任意有效的文件名,但通常以 .xml.json.yaml 结尾。配置文件应该存放在项目的类路径(class path)下,例如 src/main/resources 目录下。

  2. 配置文件格式:Log4j 2 的配置文件可以采用 XML、JSON 或 YAML 格式。每种格式的配置文件都有自己的语法规则,具体可以参考 Log4j 官方文档。

  3. 配置内容:Log4j 2 的配置文件包括以下内容:

    • 配置根节点:XML 格式的配置文件具有一个根元素,例如 Configuration。JSON 和 YAML 格式的配置文件通常以对象形式组织配置项。
    • Appenders 节点:该节点下定义了所有的 Appender(日志输出目标),包括控制台、文件、数据库等。每个 Appender 定义了日志的输出格式、目的地、过滤器等信息。
    • Loggers 节点:该节点下定义了所有的 Logger(日志记录器),包括根 Logger 和自定义 Logger。每个 Logger 定义了日志的输出级别、Appender、过滤器等信息。
    • Properties 节点:该节点下定义了一些属性,用于配置日志输出的格式、目的地等。
    • Filters 节点:该节点下定义了过滤器,用于对日志进行筛选和过滤。例如,可以根据日志级别、消息内容等条件进行过滤。
  4. Appender 配置说明:Appender 是用于定义日志输出目标的元素。以下是几种常见的 Appender 和其配置说明:

    • ConsoleAppender:将日志输出到控制台。可以设置输出格式、目标等。
    • FileAppender:将日志输出到文件。可以设置文件名、文件编码、输出格式等。
    • RollingFileAppender:将日志输出到滚动文件。可以设置文件名、文件编码、最大文件大小、备份文件数量等。
    • AsyncAppender:将日志异步输出。可以设置线程池大小、队列大小等参数。
  5. Logger 配置说明:Logger 是用于定义日志记录器的元素。以下是几个常见的 Logger 和其配置说明:

    • RootLogger:根日志记录器,用于记录所有级别的日志。可以设置输出级别、Appender 等参数。
    • Logger:自定义日志记录器,可以设置输出级别、Appender 等参数。可以通过指定 Logger 的名称来创建多个 Logger。
  6. 属性配置说明:属性是用于配置日志输出的格式、目的地等参数的元素。以下是几个常见的属性和其配置说明:

    • PatternLayout:用于定义日志输出格式的属性。可以设置日期格式、时间格式、日志级别等参数。
    • FileName:用于定义日志文件名的属性。可以设置文件名、文件编码等参数。
    • FilePattern:用于定义滚动文件的滚动规则的属性。可以设置最大文件大小、备份文件数量等参数。
  7. 日志级别设置说明:Log4j 2 支持多种日志级别,包括 OFF、FATAL、ERROR、WARN、INFO、DEBUG 和 ALL。可以通过设置 Logger 的级别来控制不同级别的日志输出。例如,可以将根 Logger 的级别设置为 INFO,则所有级别的日志都会被记录,但只有 INFO 及以上级别的日志才会被输出。

  8. 日志过滤器说明:Log4j 2 支持多种过滤器,包括 deny(拒绝)、accept(接受)和 neutral(中立)等。可以通过设置过滤器的参数来筛选和过滤日志。例如,可以将某个 Appender 的过滤器设置为 deny(ERROR),则该 Appender 只记录 ERROR 及以上级别的日志。

  9. 日志异步输出说明:Log4j 2 支持异步输出日志,可以设置线程池大小、队列大小等参数来实现异步输出。异步输出可以提高系统的性能和响应速度。

  10. 日志自动检测和重新配置说明:Log4j 2 支持自动检测和重新配置日志文件的功能。可以通过设置 monitorInterval 参数来实现自动检测和重新配置功能,该参数表示每隔一定时间检查一次配置文件的修改情况,并重新加载配置文件。

简单示例

log4j2.xml是Log4j 2的配置文件,它采用XML格式进行配置。以下是一个简单的log4j2.xml配置文件示例及其说明:


<Configuration status="WARN">
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    Console>
  Appenders>
  <Loggers>
    <Root level="debug">
      <AppenderRef ref="Console"/>
    Root>
  Loggers>
Configuration>

详细说明

  • :XML文件的声明,指定XML版本和编码方式。
  • :配置文件的根元素。
  • status="WARN":指定log4j本身的打印日志级别为WARN。
  • :定义了所有的Appender(日志输出目标)。
  • :控制台Appender,将日志输出到控制台。
  • name="Console":Appender的名称,用于在Loggers中引用。
  • target="SYSTEM_OUT":指定日志输出目标为控制台。
  • :定义了日志的输出格式。
  • pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n":指定日志的日期格式、时间格式、日志级别、Logger名称和消息格式等。
  • :定义了所有的Logger(日志记录器)。
  • :根Logger,用于记录所有级别的日志。
  • level="debug":指定日志输出级别为DEBUG。
  • :引用名为Console的Appender。

在Log4j 2的log4j2.xml配置文件中,PatternLayout提供了多种输出格式,通过在pattern属性中设置相应的模式字符串来选择所需的格式。以下是一些常见的输出格式:

  1. %d{HH:mm:ss.SSS}: 输出日志事件的日期和时间,格式为小时:分钟:秒.毫秒。
  2. %t: 输出产生该日志事件的线程名。
  3. %-5level: 输出日志级别,并限制最大宽度为5个字符。
  4. %logger{36}: 输出Logger名称,并限制最大宽度为36个字符。
  5. %msg: 输出应用提供的日志消息。
  6. %n: 输出一个换行符。
  7. %r: 输出自应用启动到输出该日志信息所耗费的毫秒数。
  8. %c: 输出所属的类目,通常就是所在类的全名。
  9. %C: 输出所属类的全名,类名较长的场合可以使用该模式。
  10. %M: 输出调用者的名称,即发生日志事件的代码的名称。
  11. %m: 输出应用提供的日志消息。
  12. %F: 输出日志消息发生的所在文件名称。
  13. %L: 输出日志消息发生的行数。
  14. %s: 输出简短的源代码位置信息,通常是类名、方法名和行号。
  15. %S: 输出详细的源代码位置信息,通常是完整的方法名和文件路径。

这些格式可以根据需要进行组合和修改,以满足特定的日志输出需求。在pattern属性中可以设置多个格式,每个格式之间用逗号分隔。

你可能感兴趣的:(杂类,log4j,xml,单元测试)