我的springboot项目中想要异步打印日志到文件,对 logback 做了如下配置
<!-- 异步日志 -->
<appender name="testAsyncAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/asyncLog.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${log.path}/asyncLog.%d{yyyy-MM-dd}.log</FileNamePattern>
<MaxHistory>30</MaxHistory>
<totalSizeCap>1GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger{50} - [%thread] - %msg%n</pattern>
</encoder>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>10MB</MaxFileSize>
</triggeringPolicy>
</appender>
<appender name="asyncAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="testAsyncAppender" />
<queueSize>10000</queueSize>
<discardingThreshold>0</discardingThreshold>
<neverBlock>true</neverBlock>
</appender>
<logger name="asyncLog" level="info" additivity="false">
<appender-ref ref="asyncAppender" />
</logger>
java的controller中使用下面代码打印日志
private static final Logger asyncLog = LoggerFactory.getLogger("asyncLog");
public JsonResult selectByPrimaryKey(@PathVariable Integer pk){
asyncLog.info("异步日志查询之前");
BillApplyMoney billApplyMoney = service.selectByPrimaryKey(pk);
asyncLog.info("异步日志查询之后");
System.out.println("线程ID和名称分别是:" + Thread.currentThread().getId() + " / " + Thread.currentThread().getName());
return JsonResult.ok(billApplyMoney);
}
在日志文件中打印出线程名称,同时在IDEA控制台中也打印线程名称,照理说如果是异步写入的日志这两处的线程名称应该不一样,结果日志文件中输出的结果是
2024-06-29 15:36:16.352 INFO asyncLog - [http-nio-7076-exec-2] - 异步日志查询之前
2024-06-29 15:36:16.371 INFO asyncLog - [http-nio-7076-exec-2] - 异步日志查询之后
控制台中输出的是线程ID和名称分别是:86 / http-nio-7076-exec-2
两处的线程名称一样,说明我对于 logback 异步日志的配置错了?
好像没看到你有用到多线程,都是在用当前线程打印的
我需要选择一个日志框架来替换log4j。我最初选择slf4j logback作为日志记录,并编写了以下配置,将应用程序日志和apache cxf的日志输出到单独的文件中,并在控制台上输出Spring/hibernate日志: 然而,我开始了解log4j2中的异步日志记录,我想在我的设置中使用log4j2实现异步日志记录,为此我编写了以下配置: log4j2配置可以工作,但它只在文件(app_log
问题内容: 我在查找日志文件时遇到问题。 我在Windows XP的Eclipse 3.7.1中使用Java日志记录- 。我文件的相关行是: 据我所知,执行以下两行之后: 我的日志文件应该在哪里是整数。 我在该目录中有5个不同的文件,通过,但是它们都没有包含我的日志记录,甚至没有包含今天日期的记录。我进行了一些谷歌搜索,发现“ 跟踪和日志记录”表示我的日志应位于其他位置。那里有一个名为的文件,但实
正如logback的文档所说,大多数appender本质上是同步的,但是如果我们将appender包装在异步appender中,那么线程将把数据推送到BlockingQueue中,如果有,比如说X-logback线程将从BlockingQueue获取数据并将其追加。这就是我对它的基本理解。 尝试使用JstackThread转储来测试这个。但是空手返回,没有回退线程的线索。 作为参考,请检查下面lo
我正在Windows上使用WAMP2.2。我需要在我的服务器上设置SSL端口。我的Apache、WAMP和站点在没有SSL的情况下工作得很好。但当我取消对这一行的注释时 在我的httpd.conf中,WAMP服务器不再工作了。(当我重新启动时,它仍然是橙色的)。我假设httpd-ssl.conf中的配置有问题。但我想知道我如何找到错误,使WAMP不能正常启动。WAMP有错误日志文件吗? 这些错误是
本文向大家介绍Spring Boot异步输出Logback日志方法详解,包括了Spring Boot异步输出Logback日志方法详解的使用技巧和注意事项,需要的朋友参考一下 一、介绍 1.1 Logback Logback是由log4j创始人设计的另一个开源日志组件,它分为下面下个模块: logback-core:其它两个模块的基础模块 logback-classic:它是log4j的一个改良版
我在我的项目中进行了强制日志记录,并且我很难抑制我不想要的日志记录语句。 还有,我在使用log4j时看不到这些记录器。我正在尝试学习Logback,因为我已经被指派来评估它作为团队可能的升级。