如題,我希望的效果是當天的日志在當天結束的時候,自動生成一個已當天的日期為后綴的日志檔案,第二天的日志寫到一個新的檔案,我的配置如下:
log4j.rootLogger = debug,console,D,E
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
log4j.logger.com.apache.ibatis.datasource.DataSourceFactory = DEBUG
log4j.logger.com.apache.ibatis.jdbc.ScriptRunner = INFO
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%5p %d{yyyy-MM-dd HH:mm:ss} [%t] - %m%n
### DEBUG ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = ../logs/epass/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.DatePattern = '.'yyyy-MM-dd
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
### ERROR ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File = ../logs/epass/error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.DatePattern = '.'yyyy-MM-dd
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
#log4j.logger.org.springframework = off
log4j.logger.org.apache.ibatis =off
log4j.logger.com.alibaba.dubbo=off
結果,本地測驗的時候,手動修改時間,應用可以按天分割并生成日志檔案,但是部署到win2008服務器后,就只有應用啟動的時候生成了一個檔案,今后每天的日志都是追加到這個日志檔案中。
求大神幫忙解惑。
uj5u.com熱心網友回復:
沒人在嗎?求大神幫助
uj5u.com熱心網友回復:
有沒有人遇到過相同的情況啊uj5u.com熱心網友回復:
看看是不是檔案路徑有問題以及是否有寫檔案的權限uj5u.com熱心網友回復:
你的日志檔案的名字都寫死了,當然只有一個檔案uj5u.com熱心網友回復:
樓主解決了嗎,,我和你遇到的問題一樣,而且,我在本地的時候,在其中一個tomcat中運行,手動修改時間都會生成日志檔案,但是在另一個就不行,所以log4j配置應該是沒問題,應該是tomcat和環境問題,但我就是找不到,按照百度上的各種方法都試了,還是不行,敢問樓主是怎么解決的?uj5u.com熱心網友回復:
看官方檔案,這種問題應該很好解決
uj5u.com熱心網友回復:
你解決了么? 我也遇到了。。。
uj5u.com熱心網友回復:
找找是不是有多個 log4j 組態檔uj5u.com熱心網友回復:
就一個,我懷疑是服務器問題,但是這個是跟什么權限有關系?
我是把應用放到服務器上,用戶是管理員,應該沒啥權限的問題把???
uj5u.com熱心網友回復:
windows 還是 linux這個目錄的權限呢?
../logs/epass/
uj5u.com熱心網友回復:
我也遇到同樣問題,大神們有什么解決辦法嗎?我的log4j組態檔如下:
log4j.rootLogger = info,stdout,I,E
### \u8F93\u51FA\u5230\u63A7\u5236\u53F0 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.appender.I = org.apache.log4j.DailyRollingFileAppender
log4j.appender.I.File = D:\\logs\\bdsh\\info.log
log4j.appender.I.DatePattern = '_'yyyy-MM-dd'.log'
log4j.appender.I.Append = true
log4j.appender.I.Threshold = INFO
log4j.appender.I.layout = org.apache.log4j.PatternLayout
log4j.appender.I.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File = D:\\logs\\bdsh\\error.log
log4j.appender.E.DatePattern = '_'yyyy-MM-dd'.log'
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
log4j.logger.com.springframework=DEBUG
log4j.logger.com.mybatis=DEBUG
log4j.logger.com.mybatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.mybatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.mybatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
uj5u.com熱心網友回復:
問題1你們生產上日志級別是?
問題2
log4j.appender.D.File = ../logs/epass/log.log
你這個日志是放到哪里的?
uj5u.com熱心網友回復:
樓主解決了嗎uj5u.com熱心網友回復:
我覺得應該是該服務器不能識別長后綴名的檔案,所以后面的日期添加失敗,導致寫在一個檔案里轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/227198.html
標籤:Web 開發
上一篇:怎么看JAR包的代碼?
