2017-06-20 50 views
0

我已經繼承了一個凌亂的Spring MVC應用程序。有些事情不起作用,我想啓用DEBUG或甚至TRACE日誌記錄來獲取更多信息,並發現即使這樣也不那麼簡單。搞清春季日誌

啓動應用程序時(通過從Eclipse運行Tomcat 8服務器),它似乎輸出兩種日誌消息。以下是第一種示例:

Jun 20, 2017 1:47:07 PM org.hibernate.Version logVersion INFO: 
HHH000412: Hibernate Core {4.3.8.Final} Jun 20, 2017 1:47:07 PM 
org.hibernate.cfg.Environment <clinit> INFO: HHH000206: 
hibernate.properties not found Jun 20, 2017 1:47:07 PM 
org.hibernate.cfg.Environment buildBytecodeProvider INFO: HHH000021: 
Bytecode provider name : javassist 

這些消息全部呈紅色。第二種看起來是這樣的:

13:47:16.949 [localhost-startStop-1] INFO org.springframework.web.servlet.DispatcherServlet:489 - FrameworkServlet 'spring': initialization started 
13:47:16.952 [localhost-startStop-1] INFO org.springframework.web.context.support.XmlWebApplicationContext:583 - Refreshing WebApplicationContext for namespace 'spring-servlet': startup date [Tue Jun 20 13:47:16 IDT 2017]; parent: Root WebApplicationContext 
13:47:16.952 [localhost-startStop-1] INFO org.springframework.beans.factory.xml.XmlBeanDefinitionReader:317 - Loading XML bean definitions from ServletContext resource [/WEB-INF/spring-servlet.xml] 

這些都是黑色的。

顯然至少有兩種活動日誌格式。這是它變得奇怪:

我發現許多log4j2.xml以及log4j.properties文件。他們都似乎被忽略。改變它們沒有區別。我只是將它們全部刪除,並且不影響日誌輸出。另外,log4j 1.2,log4j 2.0.2和slf4j都是Maven的依賴關係。 pom.xml引用版本1.2,其他Maven依賴可能需要其他版本。

我的問題是 - 我該如何配置自己的日誌?在WEB-INF下放置一個log4j.xml文件(所有其他屬性文件都位於該文件中)沒有任何區別。在那裏放置一個log4j.properties文件。我需要以某種方式打開log4j本身的調試打印輸出,所以我可以找出它從哪裏讀取它的配置。

我試着將-Dlog4j.debug作爲VM參數添加到Tomcat運行配置中。除了印刷-Dlog4j.debug command line argument或類似的東西,沒有任何改變。

回答

0

您可以使用我用於我的項目的以下代碼片段。在這裏,類名稱爲FolderReader.class,並將lo4j.properties文件放在文件夾「conf」中。在運行應用程序時通過參數「../conf/log4j.properties」作爲args [2]參數。

final FileSystemXmlApplicationContext applicationContext = new FileSystemXmlApplicationContext(args[0]); 
    Logger logger=Logger.getLogger(FolderReader.class); 
    PropertyConfigurator.configure(args[2]); 
    logger.info("Intializing beans.."); 
    ServiceContext serviceContext = (ServiceContext) BeanFactoryLocator.getBean("serviceContext"); 

PropertyConfigurator.configure(args [2]);從位置加載log4j.properties文件。從此屬性文件中取得配置,並相應地完成格式化。