我在我的应用程序中使用SLF4J和LogBack。我使用了几个也使用SLF4J的第三方库。为了隐藏他们的日志,我已将根日志级别设置为" WARN"。但是,对于我自己的记录器,我想在日志输出中显示所有内容(无论消息级别如何)。到目前为止,这是我的配置:
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>[%level] %date{YYYY-MM-dd HH:mm:ss} [%thread] %logger{10} [%file:%line] %msg%n</pattern>
</encoder>
</appender>
<!-- For all loggers, use WARN as minimum level to avoid log overflow -->
<root level="WARN">
<appender-ref ref="STDOUT" />
</root>
<!-- For the specific "com.example.MyLogger.java", use log level DEBUG -->
<logger name="MyLogger" level="DEBUG">
<appender-ref ref="STDOUT" />
</logger>
<consolePlugin />
</configuration>
不幸的是,上方显示的配置对我不起作用。我只收到来自&#34; MyLogger&#34;如果他们的日志级别为WARN或更高级别,则为class。
所以回顾一下我想要的东西:
这可能吗?我该怎么做?
谢谢,
艾伦
编辑:经过实验,我自己找到了一个解决方案。这是logback.xml:<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>[%level] %date{YYYY-MM-dd HH:mm:ss} [%thread] %logger{10} [%file:%line] %msg%n</pattern>
</encoder>
</appender>
<logger name="com.example" level="ALL">
<appender-ref ref="STDOUT" />
</logger>
<root level="WARN">
<appender-ref ref="STDOUT" />
</root>
<consolePlugin />
</configuration>
请注意,第一个记录器不对具体记录器类设置限制,而是对限定类名称的前缀设置限制。因此,将记录来自 com.example。* 的所有内容。由于我的应用程序中有一个特定的记录器类,因此结果与预期相同。
答案 0 :(得分:2)