国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Java日志設計&實踐(2)

2019-11-14 22:36:28
字體:
來源:轉載
供稿:網友
java日志設計&實踐(2) - 設計篇

設計階段主要考慮幾個問題

  1. 按應用或功能拆分日志,但要把握度,過猶不及
  2. 日志配置需支持動態調整
使用SPRing的Log4jConfigListener,實現動態調整日志級別

web.xml對應位置加入如下內容

<context-param>  <param-name>log4jConfigLocation</param-name>  <param-value>/WEB-INF/log4j.properties</param-value> </context-param> <context-param>  <param-name>log4jRefreshInterval</param-name>  <param-value>10000</param-value> </context-param> <listener>  <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener>

【注意】

1.       不要把log4jConfigLocation 指定為/WEB-INF/classes/log4j.properties

當log4jConfigLocation指定為/WEB-INF/classes/log4j.properties,如果需要動態調整日志配置,可能會引起類的重新加載。但動態調整/WEB-INF/log4j.properties不會引起類的重新加載

2.       log4jRefreshInterval的單位是毫秒

3.       /WEB-INF/log4j.properties/WEB-INF/classes/log4j.properties不能同時存在,否則會報異常

4.       JUnit單元測試類的問題

運行單元測試時,報以下錯誤

log4j:WARN No appenders could be found for logger (org.springframework.context.support.ClassPathXmlapplicationContext).

log4j:WARN Please initialize the log4j system properly.

log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

 

原因是找不到默認的log4j配置文件,可以手動指定,如:

Log4jConfigurer.initLogging("classpath:log4j.test.properties");

log4j.test.properties是專門為執行單元測試類使用的一個配置文件

為每個工程指定一個獨立的日志文件

/WEB-INF/log4j.properties配置如下

log4j.rootLogger=info, filelog4j.appender.file=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.file.File=${catalina.home}/logs/projectNamelog4j.appender.file.DatePattern='.'yyyy-MM-dd'.log'log4j.appender.file.Encoding=UTF-8log4j.appender.file.layout=org.apache.log4j.PatternLayoutlog4j.appender.file.layout.ConversionPattern=%p %d %m [%l] %n

log4j.appender.file.File=${catalina.home}/logs/projectName

中的projectName可以是工程名等唯一標識一個工程的字符串

${catalina.home}表示當前tomcat工程根目錄,Tomcat啟動時設置該變量

 

通過以上配置,就可以達到為每個工程指定一個獨立的日志文件的目錄

 

小結

現在來解答如下幾個問題

【問】一個Tomcat加載多個工程,如何確定日志中的內容是哪個工程的?

【答】為每個工程指定獨立的日志文件,避免多個工程日志文件輸出到一個文件的問題

【問】多個Tomcat同時加載同一個工程,可以使用log4j的DailyRollingFileAppender等文件類Appender嗎?

【答】可以,指定文件名時,可以使用類似

log4j.appender.file.File=${catalina.home}/logs/projectName

的配置,這樣每個Tomcat的日志分別保存

【問】多個Tomcat同時加載同一個工程,可以分別指定日志輸出目錄嗎?

【答】可以 同上一個問題的答案

【問】可以動態調整一個類的日志級別嗎?

【答】可以 本文已經提供了一種思路


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新蔡县| 巢湖市| 榕江县| 许昌县| 永善县| 扬州市| 正安县| 剑阁县| 阿克陶县| 容城县| 澄江县| 屏东县| 门源| 来宾市| 巴青县| 同仁县| 威远县| 长宁县| 广宁县| 克山县| 武强县| 德钦县| 太和县| 开原市| 松潘县| 安新县| 桦甸市| 定边县| 南和县| 关岭| 密云县| 额尔古纳市| 当阳市| 治多县| 三台县| 敖汉旗| 闸北区| 忻城县| 三亚市| 淮滨县| 正安县|