5
A
回答
4
它不支持log4net的「開箱即用」。但是,您可以使用RollingFileAppender並創建一個手動類/方法來清理/刪除日誌文件。
僅供參考,Log4Net: set Max backup files on RollingFileAppender with rolling Date
另一種方法,以避免被鎖定將通過設置最小制動水平上的日誌文件的文件:
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
6
我有這個問題了。
你需要這個在你的配置:
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
2
謝謝你們 我成功清除日誌。 在日誌配置文件的附加器塊我添加了一行:
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
是清除日誌文件中的代碼是:
RollingFileAppender fileAppender = LogManager.GetRepository()
.GetAppenders().FirstOrDefault(appender => appender is RollingFileAppender) as RollingFileAppender;
if (fileAppender != null && File.Exists(((RollingFileAppender)fileAppender).File))
{
string path = ((RollingFileAppender)fileAppender).File;
log4net.Appender.FileAppender curAppender = fileAppender as log4net.Appender.FileAppender;
curAppender.File = path;
FileStream fs = null;
try
{
fs = new FileStream(path, FileMode.Create);
}
catch(Exception ex)
{
(log4net.LogManager.GetLogger(this.GetType())).Error("Could not clear the file log", ex);
}
finally
{
if (fs != null)
{
fs.Close();
}
}
}
謝謝大家
+0
看到我的回覆。我相信那是我指出你的方向。很高興你把事情解決了。 – Seany84 2012-09-11 00:01:25
1
如果你不不想受到具有最小鎖定的性能影響(請參閱answer),那麼您可以臨時配置appender使用最小鎖定,刪除文件,然後將默認行爲回來。
例如,當你只使用RollingFileAppenders:
// Release the lock on the log4net log files
var appenders = log4net.LogManager.GetRepository().GetAppenders();
foreach (var appender in appenders)
{
var rollingFileAppender = appender as log4net.Appender.RollingFileAppender;
if (rollingFileAppender != null)
{
rollingFileAppender.ImmediateFlush = true;
rollingFileAppender.LockingModel = new log4net.Appender.FileAppender.MinimalLock();
rollingFileAppender.ActivateOptions();
}
}
的文件,現在可以自由地毫無問題地刪除。
0
使用簡單的命令
File.WriteAllText("C:/Users.../log.xml", "");
在應用程序的開始。
相關問題
- 1. 如何清除Sonatype Nexus日誌文件
- 2. 用於清除日誌文件的Log4net設置
- 3. Python:清除日誌文件
- 4. 如何解析log4net日誌文件?
- 5. 如何加密log4net日誌文件
- 6. 停止log4net日誌進程並刪除日誌文件鎖
- 7. 如何清除Heroku日誌
- 8. 如何刪除舊的log4net日誌文件?
- 9. log4net的 - 任何日誌文件產生
- 10. Log4net - 每日重置日誌文件
- 11. 使用EntLib清除日誌文件
- 12. ActiveMQ - Kahadb日誌文件不會清除
- 13. netbeans tomcat清除日誌文件
- 14. Logback在清除日誌文件後停止日誌記錄
- 15. Log4net獲取日誌文本
- 16. Log4net - 不創建日誌文件
- 17. log4net - 只創建一個日誌文件
- 18. log4net - 日誌文件不再被翻轉
- 19. Log4net動態生成日誌文件
- 20. log4net動態創建日誌文件
- 21. log4Net日誌文件沒有寫
- 22. Log4net不爲NHibernate創建日誌文件
- 23. Log4net未創建日誌文件
- 24. log4net的+ Common.Logging +天青=空日誌文件
- 25. 與log4net獨特的日誌文件
- 26. Log4Net和多個日誌文件
- 27. 使用FileSystemWatcher監視log4net日誌文件
- 28. Log4net不寫入日誌文件
- 29. log4net日誌文件在哪裏?
- 30. log4net的:旋轉日誌文件名
謝謝!但是當我嘗試刪除文件時,我得到一個異常,因爲log4net捕獲該文件。我如何從log4net中釋放日誌文件? – 2012-07-29 13:27:46
在調用delete之前,可以使用CloseFile()方法。 – Darek 2012-07-29 13:35:37
我想這是一個單獨的問題,但按照Darek的建議。讓我們知道您的工作方式,如果這對您有用,請不要忘記標記爲已回答。 – Seany84 2012-07-29 14:13:54