我可以在xml配置的logback中禁用appender吗? 我有我的配置,我想放两个appender,一个用于数据库,另一个用于文本日志,但只有一个必须激活。 谢谢!
答案 0 :(得分:10)
不确定为什么要停用appender,你想通过禁用来实现什么。
有一些方法可以实现它
<configuration>
<appender name="stdoutappender" />
<appender name="dbappender" />
<logger name="stdoutlogger" level="DEBUG">
<appender-ref ref="stdoutappender" />
</logger>
<logger name="dblogger" level="OFF">
<appender-ref ref="dbappender" />
</logger>
</configuration>
在这种情况下,您还必须在修改Logback配置时重新加载配置 (logback.xml)
除了以上3个选项之外,您还可以手动创建回溯配置
答案 1 :(得分:0)
为附加程序选择日志记录级别的简单方法是使用ThresholdFilter
,例如:
<appender name="ap.Console" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>${logging.appender.console.level:-OFF}</level>
</filter>
<encoder>
<pattern>${pattern}</pattern>
</encoder>
</appender>
要激活特定的附加程序时,应使用适当的-D
选项运行jvm。对于上面定义的附加器,将为:
java -Dlogging.appender.console.level=DEBUG
当然,如果您激活自动配置重新加载(http://logback.qos.ch/manual/configuration.html#autoScan),则可以在应用运行时更改过滤器级别。
当您不想每次启动应用程序(具有不同的日志记录级别)时都不想更改登录配置文件时,我建议的方法很方便。您只需运行带有相应-D
选项的jvm即可设置在logback配置中使用的属性。