0
我正在使用Spring,log4j和slf4j。在嘗試從@PostConstruct註解中記錄一些信息時,log4j抱怨尚未初始化。當我以後從這個類登錄時,log4j工作正常。當從@PostConstruct註解方法調用記錄器時,Log4j未初始化
private final static Logger log = LoggerFactory.getLogger(MyClass.class);
@PostConstruct
public void init() {
log.info("initializing service");
}
輸出:
的log4j:WARN否追加程序可以找到的記錄器(mypackage.MyClass)
Log4j配置是AA基於文件的一個:
log4j.rootLogger=INFO, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d %-5p %c %x - %m%n
我不想爲特定於spring的'init-method'切換標準的Java註釋,所以這個問題可以改寫爲'如何讓Spring加載log4j.properties資源?'。 –
由於您必須將類傳遞給LoggerFactory方法,因此您需要先將此類初始化。所以我不認爲你可以做得更早,你可以嘗試做'log'變量非靜態。 – androberz