2015-05-06 71 views
0

我正在將應用程序從log4j 1.2轉換爲log4j2。在log4j.properties文件中,我找到了與Java實用程序日誌相關的配置。將與JUL相關的log4j 1.2配置轉換爲log4j 2配置

handlers=java.util.logging.ConsoleHandler 
java.util.logging.ConsoleHandler.level=SEVERE 

如何將此配置轉換爲log4j2配置?

謝謝!

回答

1

Log4j2 provides a bridge將所有對java.util.logging API的調用路由到Log4j2。要激活它,請將系統屬性java.util.logging.manager設置爲org.apache.logging.log4j.jul.LogManager,並將Log4j2 JUL適配器jar添加到您的類路徑中(請參閱「which jars FAQ」)。

然後像往常一樣配置log4j2。 log4j2手冊提供了許多示例配置。

您提供的配置片段可能會翻譯爲類似於下面的內容(我添加了一個FileAppender作爲示例)。

<Configuration status="warn"><!-- use status="trace" for troubleshooting --> 
    <Appenders> 
    <Console name="STDOUT" target="SYSTEM_OUT"> 
     <PatternLayout pattern="%m%n"/> 
    </Console> 
    <File name="FILE" fileName="myapp.log"> 
     <PatternLayout> 
     <pattern>%d %p [%t] %c{1.} %m%n</pattern> 
     </PatternLayout> 
    </File> 
    </Appenders> 
    <Loggers> 
    <Root level="trace"> 
     <AppenderRef ref="STDOUT" level="ERROR" /> 
     <AppenderRef ref="FILE" /> 
    </Root> 
    </Loggers> 
</Configuration> 
+0

這是否意味着當JUL橋存在於類路徑中時,java util日誌自動路由到myapp.log文件? – Grant

+1

是的,所有對java.util.logging的調用都將被重定向到log4j2。然後在log4j2配置中,您可以過濾事件或將它們指向您所需的任何日誌文件。 –

+0

您能否介紹一下上面兩種配置的用法?因爲我找不到任何資源(我的意思是log4j.properties) – Grant