2014-09-03 64 views
0

我知道,configureAndWatch是在tomcat應用程序中動態更改日誌級別的簡便方法。但是,而不是這樣做,有沒有辦法通過配置tomcat使用log4j進行登錄?動態更改log4j日誌級別,無需configureAndWatch

在Apache中docs,它說如果要重新配置Tomcat使用Apache的log4j來進行自己的日誌記錄需要

在本節中描述的步驟。如果您只是想在您自己的Web應用程序中使用log4j,則不需要這些步驟。

但是我們不能使用這個相同的配置來記錄我們的應用程序日誌嗎? (我認爲如果我把相關的jar文件和屬性文件放到lib文件夾中就可以工作,但是我還是無法正確理解。)

回答

1

您可以使用一個servlet以編程方式更改級別。例如:

String logLevel = request.getParameter("level"); 
Logger root = Logger.getRootLogger(); 

if ("DEBUG".equalsIgnoreCase(level)) { 
    root.setLevel(Level.DEBUG); 
} else if ("INFO".equalsIgnoreCase(level)) { 
    root.setLevel(Level.INFO); 
} else if ("WARN".equalsIgnoreCase(level)) { 
    root.setLevel(Level.WARN); 
} else if ("ERROR".equalsIgnoreCase(level)) { 
    root.setLevel(Level.ERROR); 
} else if ("FATAL".equalsIgnoreCase(level)) { 
    root.setLevel(Level.FATAL); 
} 
+0

感謝您的答案保羅。但我想用tomcat配置來完成,而不是通過編程來完成。 – 2014-09-04 04:16:19

+0

@Maleenc已將JUL更改爲Tomcat中的log4j? – 2014-09-04 04:20:38

+0

我正在嘗試保羅,我無法正確執行它。我的情況有一些複雜性。我使用的是liferay tomcat,我想使用dailyRollingFileAppender。所以這將是另一個問題。但是如果我能夠對這個問題有一個明確的方向,我想我也可以克服這些困難。 – 2014-09-04 05:16:05