我一直在使用Logback Groovy配置,现在我发现它是启动速度很慢的原因。一个HelloWorld
"应用程序"需要大约一秒钟。我没有注意到Web服务器环境中的减速,但现在我经常需要运行一些相当简单的工具,这是不可接受的。
Q1:我仍然无法相信,因为我的配置文件很小而且一秒钟很大,所以有人可以确认吗?
我可以想象,除了一部分回到XML之外,可以轻松地重写所有内容。有问题的部分是我自己的过滤器和它的两个方法,如
public class MyLogbackFilter extends Filter<ILoggingEvent> {
public MyLogbackFilter accept(String prefix, Level level) {...}
public MyLogbackFilter accept(String prefix, Level level) {...}
...
}
通过类似
的配置filter = new MyLogbackFilter()
.accept("com.example.pck1.Class1", TRACE)
.accept("com.example.pck1.Class2", TRACE)
.deny("com.example.pck1", TRACE)
.accept("", WARNING)
.deny("", INFO);
自上而下评估规则,例如,无论以后指定的内容如何,com.example.pck1.Class1
级TRACE
或更高级别的所有内容都会被接受。
Q2:我可以以某种方式让logback读取像
这样的配置文件A com.example.pck1.Class1 TRACE
A com.example.pck1.Class2 TRACE
D com.example.pck1 TRACE
A * WARNING
D * INFO
并把它喂给我的班级?然后解释是花生。
答案 0 :(得分:0)
真诚地,我永远不知道你可以按类编写,但是你可以只为你的项目添加一个xml配置文件,并且logback库试图在类路径中找到xml(通常,在maven你把xml放入资源文件)。
文件可以是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/usr/java/logs/floresTrace.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>/path/to/file/myfile.%i.log.zip</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>3</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>1MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%d{YYYY-MM-dd HH:mm:ss} %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- you can, however add loggers by package here-->
<logger name="your.package.one" level="DEBUG"/>
<logger name="your.package.two" level="INFO"/>
<root level="debug">
<appender-ref ref="FILE" />
<appender-ref ref="STDOUT" />
</root>
</configuration>
因此,正如评论所说,您可以按包添加记录器。希望这有帮助。