我正在使用SLF4J進行日誌記錄(使用Log4J)。 使用的appender使用xml進行配置。slf4j,更改記錄器或在運行時添加appender
<appender name="business" class="org.apache.log4j.RollingFileAppender">
<param name="maxFileSize" value="10MB" />
<param name="maxBackupIndex" value="10" />
<param name="File" value="${jboss.server.log.dir}/business.log" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %p [%t] %c - %m%n" />
</layout>
</appender>
<category name="BusinessLogger" additivity="false">
<level value="INFO" />
<appender-ref ref="business" />
</category>
日誌進程在攔截器中調用。現在,我正在嘗試測試日誌的輸出。
private static final Logger BUSINESS_LOGGER = LoggerFactory.getLogger("BusinessLogger");
爲了測試日誌(使用JUnit),需要在某處被保存爲變量日誌的輸出:我使用稱之爲記錄器在運行時。我有一個創建自定義appender的想法,它將最後一個日誌保存到變量中,但似乎無法添加appender或更改appender,因爲slf4j中的Logger類是一個接口。有沒有人可能知道任何解決方法?
不客氣:-) – alterfox
如果你的代碼直接使用slf4j(LoggerFactory。getLogger()),這會失敗,因爲您正在向log4j添加處理程序,如果直接調用slf4j,該處理程序將不會使用。 –