Log4j2 类名与行名不显示问题

13 篇文章 1 订阅

Log4j2 类名与行名不显示问题

异步日志,打印到文件中,显示的类名和行数都是"?":

        <AsyncLogger name="com.kingsoft.adx.database.dao" level="debug">
            <appender-ref ref="MyBatis"/>
        </AsyncLogger>

修改成同步日志,就可以显示出类名与行数了:

        <Logger name="com.kingsoft.adx.database.dao" level="debug">
            <appender-ref ref="MyBatis"/>
        </Logger>

解决方案

最后在修改了输出日志格式后,就可以显示了

修改前:

<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/>

修改后:

<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss z} %-5level %logger{36} %L %M - %msg%xEx%n"/>

将“class” 改为 “logger” 就可以显示了

另一种解决方案

<AsyncRoot level="info" includeLocation="true">
    <AppenderRef ref="File"/>
</AsyncRoot>
<!--
1.异步logger,还需要在pom.xml中添加disruptor的依赖。
2.includeLocation结合异步logger使用,当其设置为true时,才会显示具体的行号,以及日志所在的类名;
3.如果设置为false,哪怕<Pattern>设置了输出行号也不会显示出来;
-->

<dependency>
  <groupId>com.lmax</groupId>
  <artifactId>disruptor</artifactId>
  <version>${lmax.disruptor.version}</version>
</dependency>
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是配置log4j2的步骤: 1. 在pom.xml文件中添加log4j2的依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency> ``` 2. 在application.properties文件中添加log4j2的配置文件路径: ```properties logging.config=classpath:log4j2.xml ``` 其中,log4j2.xml是你自定义的log4j2配置文件。 3. 创建log4j2.xml文件并配置日志输出格式、日志级别等信息。以下是一个简单的log4j2.xml配置示例: ```xml <?xml version="1.0" encoding="UTF-8"?> <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="info"> <AppenderRef ref="Console"/> </Root> </Loggers> </Configuration> ``` 在这个示例中,日志会输出到控制台,并且包含时间戳、线程信息、日志级别、类名和日志消息。 4. 在你的代码中使用log4j2进行日志记录。例如,在Spring Boot的应用程序中,你可以使用`org.slf4j.Logger`接口进行日志记录。以下是一个示例: ```java import org.slf4j.Logger; import org.slf4j.LoggerFactory; @RestController public class MyController { private static final Logger logger = LoggerFactory.getLogger(MyController.class); @GetMapping("/hello") public String hello() { logger.info("Hello, world!"); return "Hello, world!"; } } ``` 在这个示例中,我们使用`logger.info()`方法记录了一条日志。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值