gpt4 book ai didi

java - 如果我仍然登录到文件,禁用 Logback 控制台附加程序是否会提高性能?

转载 作者:行者123 更新时间:2023-11-30 06:14:57 25 4
gpt4 key购买 nike

如果我使用 FileAppender,禁用 Logback 控制台附加程序是否会以任何方式提高性能?

我使用带有 Logback 的 PlayFramework 2.3 作为日志记录框架。我必须将应用程序日志存储在相对较慢的文件中。 禁用标准控制台附加程序以提高日志记录性能是否有意义,或者这是否是过早的优化?即使启用了控制台记录器,记录器性能对我来说也不是问题。我只是很好奇这在这种情况下是否重要。

<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${application.home}/logs/application.log</file>
<encoder>
<pattern>%date - [%level] - from %logger in %thread %n%message%n%xException%n</pattern>
</encoder>
</appender>

禁用此附加程序 ???

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%coloredLevel %logger{15} - %message%n%xException{5}</pattern>
</encoder>
</appender>

最佳答案

您确实应该在生产环境中禁用控制台附加程序。如本blog所述:

Java logging severely affects performance of your application. Its quite common sense that more you log, more you perform file IO which slows down your application.

然后您必须仔细选择您在生产环境中记录的级别(最好是 WARN 级别)。

并且在文件附加器中也会影响你的性能,使用原生的 asynchronous logback appender确保不要阻塞您的应用程序线程:

<configuration>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${application.home}/logs/application.log</file>
<encoder>
<pattern>%date - [%level] - from %logger in %thread %n%message%n%xException%n</pattern>
</encoder>
</appender>

<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="FILE" />
</appender>

<root level="WARN">
<appender-ref ref="ASYNC" />
</root>
</configuration>

关于java - 如果我仍然登录到文件,禁用 Logback 控制台附加程序是否会提高性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29523507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com