1. 程式人生 > >excel 匯入oracle 發現後臺日誌突然不寫了,程式卡死,也不報錯 log4j死鎖

excel 匯入oracle 發現後臺日誌突然不寫了,程式卡死,也不報錯 log4j死鎖

最近專案,出現在先從 excel 讀資料,通過ibatis  連線oracel  導了幾次發現,後臺日誌不輸出,程式也卡住了,也不出現錯誤,無法定位問題,

 猜測是程式出了問題,後來改了還是出現同樣的問題,哪個鬱悶啊,後來幾個同事猜測什麼原因,不知道怎麼回事,只能慢慢嘗試各種問題

最後日誌的debug 去掉嘗試了幾次竟然不出現了,上網百度竟然是log4j  死鎖問題,怪不得不輸出日誌,資源都處於等待狀態。

log4j  debug 是多執行緒的方式寫檔案,io流耗損很多,多執行緒處理就會可能出現死鎖的現象,也是log4j一個bug

log4j.rootLogger=DEBUG,stdout,filelog
#log4j.rootLogger=DEBUG,filelog

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

# flush log every day
log4j.appender.filelog=org.apache.log4j.DailyRollingFileAppender
log4j.appender.filelog.ImmediateFlush=true
log4j.appender.filelog.File=log.log
log4j.appender.filelog.Append=true
log4j.appender.filelog.DatePattern='.'yyyy-MM-dd
log4j.appender.filelog.layout=org.apache.log4j.PatternLayout
log4j.appender.filelog.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.filelog.encoding=UTF-8

#log4j.logger.com.ibatis=debug,filelog
#log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug
#log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug
#log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug
#log4j.logger.java.sql.Connection=debug
log4j.logger.java.sql.Statement=debug
log4j.logger.java.sql.PreparedStatement=debug,stdout