根據Log4Net documentation,RollingFileAppender只會在記錄消息時滾動日誌文件。我需要登錄到此文件,但每天都會將其導入另一個數據庫。我無法使用數據庫appender,因爲我需要這些文件,並且必須將數據從日誌文件轉換爲數據庫(它不是直接複製)。問題是如果午夜後沒有日誌活動,日誌不會滾動。導入器查找以前的日期文件(並且我無法更改此代碼),因此如果沒有活動並且日誌尚未滾動,則導入器不會找到該文件。有沒有辦法強制日誌在午夜滾動而又沒有另一個線程醒來並強制它滾動?一個自定義的appender可以這樣做嗎?如果可能,我想避免這種情況。強制Log4Net RollingFileAppender滾動
4
A
回答
5
編寫一個Windows服務,在午夜之後觸發事件,使用相同的配置寫入虛擬日誌條目。
0
按照RollingFileAppender documentation,你可以將其設置爲每天滾動,看到這樣的配置:
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="logfile" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
+0
...但在下一個日期間隔過後(即在OP的案例中午夜之後),該文件實際上並沒有被滾動,直到appender收到日誌消息。然後它會滾動文件並開始一個新文件。 – 2012-09-21 14:47:20
3
你要想想這個從什麼代碼路徑導致翻車的問題」的點常規?」。一旦你知道如何達到這個程序,你可以決定如何觸發它。
自定義的appender能做到嗎?當然,但是在appender中沒有代碼會運行,直到你通過它登錄,所以你回到了原點。
至於「無論如何強迫日誌在午夜滾動而沒有另一個線程醒來並強制它滾動?」,我會說這個問題等同於「是否有可能強制日誌在午夜沒有任何代碼運行?「。我並不試圖對此有趣,也不想侮辱你,我只是試圖用一種希望爲你回答問題的方式來重述這個問題。 :-)
解決這個問題的最簡單方法是喚醒並記錄日誌以強制文件旋轉。
相關問題
- 1. 乾淨地強制Log4j RollingFileAppender在午夜後不久滾動?
- 2. 已將Log4Net RollingFileAppender設置爲每週滾動
- 3. Log4Net:在RollingFileAppender上滾動設置Max備份文件日期
- 4. Log4Net&RollingFileAppender生成Xml文件
- 5. log4net:比較adonetappender和rollingfileappender
- 6. 使用RollingFileAppender時出現Log4Net問題
- 7. log4net RollingFileAppender刪除所有舊文件
- 8. Log4net RollingFileAppender大小rollingStyle文件擴展名
- 9. Log4j RollingFileAppender在Linux上滾動,但在Windows上不滾動
- 10. RollingFileAppender,它滾動後,它不會追加
- 11. log4net的滾動不工作
- 12. Log4Net未在MaxFileSize上滾動
- 13. 強制log4net重試sql連接
- 14. 以編程方式配置RollingFileAppender日期滾動
- 15. 配置log4net的RollingFileAppender進行代碼滾動每個應用程序一旦啓動
- 16. 滾動欄強制Div下降
- 17. Web-kit,Css Clip強制滾動條
- 18. 強制滾動條到底部jquery/css
- 19. 強制顯示ListView中的滾動條?
- 20. Fancybox強制滾動到頂部
- 21. 強制Richtextbox滾動條刷新
- 22. 在IE8中強制水平滾動條
- 23. 強制滾動條圖像CSS
- 24. 強制添加水平滾動條
- 25. 強制垂直滾動條到底
- 26. 如何強制滾動條滾動畫布
- 27. 在滾動主體前強制滾動一個div
- 28. log4net的RollingFileAppender進行復合軋製風格overwritting被配置爲數據
- 29. log4net的滾動文件Appender的滾動發行
- 30. 如何在log4net RollingFileAppender上設置憑據來模擬?
我會說另一個過程,基本上是另一個線程。 – kenny 2009-01-06 22:33:24