2011-08-12 77 views
1

我正在使用Spring & Hibernate在我的應用程序中,我想設置兩個不同的日誌文件 - 一個主日誌文件,所有非sql日誌文件和另一個用於編寫sql查詢的文件。這是我的log4j.properties文件..但是,雖然SQL日誌文件工作正常預期..問題是,主日誌文件還包含SQL查詢..我應該做什麼改變停止寫入主要日誌SQL查詢文件..Spring-Hibernate日誌記錄 - 單獨的日誌文件

#application log properties 
log4j.appender.rollingFile = org.apache.log4j.DailyRollingFileAppender 
log4j.appender.rollingFile.File = C:\\myapp\\logs\\app.log 
log4j.appender.rollingFile.Threshold = TRACE 
log4j.appender.rollingFile.DatePattern = '.'yyyy-MM-dd 
log4j.appender.rollingFile.layout = org.apache.log4j.PatternLayout 
log4j.appender.rollingFile.layout.ConversionPattern=%d %5p [%C:%M:%L] - %m%n 
log4j.rootLogger = ERROR, rollingFile 

#hibernate properties 
log4j.appender.file = org.apache.log4j.DailyRollingFileAppender 
log4j.appender.file.File = C:\\myapp\\logs\\sql.log 
log4j.appender.file.Threshold = TRACE 
log4j.appender.file.DatePattern = '.'yyyy-MM-dd 
log4j.appender.file.layout = org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=%d %5p [%C:%M:%L] - %m%n 
log4j.logger.jdbc.sqltiming = DEBUG, file 

回答

2

這是ap4在log4j中的可加性行爲。

對於給定的記錄器每個啓用日誌記錄請求將被 轉發到該記錄的所有附加目的地,以及在附加目的地 層次更高。

剛剛成立的採集器jdbc.sqltiming爲false,其日誌消息加將不會傳播到其父記錄器追加程序(即app.log)

log4j.additivity.jdbc.sqltiming = false 

參考文獻:

See the section Appenders and Layouts for more information about Appender Additivity

+0

謝謝Nathan和ken ..也與我目前的配置日誌文件沒有附加日期,直到一天翻轉..我的意思是今天的日誌被寫入「app.log」,直到午夜,那麼我將有「app.log.2011-08- 12「 - 這實際上是根據log4j文檔預計beahavior ..但有沒有辦法改變這種行爲,以便日誌是寫入當前日期?我的意思是我應該能夠在午夜前看到「app.log.2011-08-12」..我認爲通過使用log4j-extra我們可以做到這一點,但我不喜歡XML配置,也不想去那裏..在此先感謝 – RKodakandla

+0

@rrkwells,您可能會嘗試使用'DatedFileAppender'.Contrary到'DailyRollingFileAppender'運輸與log4j,由DatedFileAppender生成的日誌文件名稱始終包含今天的日期。 http://logging.apache.org/catalog.html –

相關問題