Log4j2配置文件详解

Configuration

根节点,有status和monitorInterval等多个属性

status的值有 “trace”, “debug”, “info”, “warn”, “error” and “fatal”,用于控制log4j2日志框架本身的日志级别,如果将stratus设置为较低的级别就会看到很多关于log4j2本身的日志,如加载log4j2配置文件的路径等信息

monitorInterval,含义是每隔多少秒重新读取配置文件,可以不重启应用的情况下修改配置

Properties

属性。使用来定义常量,以便在其他配置项中引用,该配置是可选的,例如定义日志的存放位置

Appenders

Appenders是输出源,用于定义日志输出的地方。
log4j2支持的输出源有很多,有控制台ConsoleAppender、文件FileAppender、AsyncAppender、RandomAccessFileAppender、RollingFileAppender、RollingRandomAccessFile 等

Log4j2的Appenders配置详解

Filters

Filters决定日志事件能否被输出。过滤条件有三个值:ACCEPT(接受)DENY(拒绝)NEUTRAL(中立)

Log4j2的Filters配置详解

PatternLayout

用于指定输出日志的格式。详细配置请查看官网

简单示例:

<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] %-5level %logger{0} - %msg%n" charset="UTF-8"/>

授人以鱼不如授人以渔。关于pattern的格式点击http://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout

PatternLayout:控制台或文件输出源(Console、File、RollingRandomAccessFile)都必须包含一个PatternLayout节点,用于指定输出文件的格式(如 日志输出的时间 文件 方法 行数 等格式),例如 pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] %-5level %logger{0} - %msg%n"

  %d 输出日志日期格式,如%d{yyyy-MM-dd HH:mm:ss,SSS}输出2012-11-02 14:34:02,123
  %t 输出当前线程名称
  %-5level 输出日志级别,-5表示左对齐并且固定输出5个字符,如果不足在右边补空格
  %logger 输出logger名称
  %msg 日志信息
  %n 换行

  其他常用的占位符有:
  %F 输出所在的类文件名,如Log4j2Test.java
  %L 输出行号
  %M 输出所在方法名
  %l 输出语句所在的行数, 包括类名、方法名、文件名、行数

Policy & Strategy

Log4j2的Policy触发策略与Strategy滚动策略配置详解

Loggers

Log4j2的Loggers配置详解

  • 12
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
log4j2是一个流行的Java日志框架,可以通过log4j2.xml文件进行配置。下面是log4j2.xml文件的配置详解: 1. 配置文件动态刷新配置 可以使用monitorInterval属性来设置配置文件的动态刷新间隔,单位为秒。例如: ```xml <Configuration monitorInterval="30"> ``` 2. Configuration的status属性 Configuration标签有一个status属性,用于指定日志记录器的状态。可以设置为debug、info、warn、error、fatal。例如: ```xml <Configuration status="warn"> ``` 3. 日志级别 可以使用属性level来指定日志级别,可以设置为trace、debug、info、warn、error、fatal、off。例如: ```xml <Logger name="com.foo.Bar" level="trace"> ``` 4. Logger与Root标签 Logger标签用于指定特定的类或包的日志级别,而Root标签用于指定所有日志记录器的默认日志级别。例如: ```xml <Root level="error"> <AppenderRef ref="Console"/> </Root> <Logger name="com.foo.Bar" level="trace"> <AppenderRef ref="RollingFile"/> </Logger> ``` 5. Logger的additivity属性 Logger标签还有一个additivity属性,用于指定是否将日志事件传递给父记录器。默认情况下,Logger的additivity属性为true。例如: ```xml <Logger name="com.foo.Bar" level="trace" additivity="false"> ``` 6. appender-ref的ref属性 可以使用appender-ref标签来引用appender。例如: ```xml <Logger name="com.foo.Bar" level="trace"> <AppenderRef ref="RollingFile"/> </Logger> ``` 7. appender 可以使用appender标签来指定日志输出的目的地,例如控制台或文件。常用的appender有Console、File、RollingFile等。例如: ```xml <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> </Console> <RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz"> <PatternLayout pattern="%d %p %c{1.} [%t] %m%n"/> <Policies> <TimeBasedTriggeringPolicy/> <SizeBasedTriggeringPolicy size="250 MB"/> </Policies> </RollingFile> </Appenders> ``` 8. Patterns 可以使用PatternLayout标签来指定日志输出的格式。例如: ```xml <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> ``` 9. Java使用Log4j2 可以使用以下步骤在Java中使用Log4j2: 1)导入pom依赖 ```xml <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.14.1</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.14.1</version> </dependency> ``` 2)配置Log4j2.xml 3)使用日志 ```java import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; public class MyClass { private static final Logger logger = LogManager.getLogger(MyClass.class); public void doSomething() { logger.debug("Debug message"); logger.info("Info message"); logger.warn("Warn message"); logger.error("Error message"); logger.fatal("Fatal message"); } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值