我在ASP.NET MVC 4應用程序中使用log4net,並試圖從log4Net下載生成的日誌文件。如何從log4Net下載生成的日誌文件
我心目中下載日誌文件以FileResult,如:
[Authorize(Roles = "Admin")]
public FileResult DownloadUserInterfaceLog()
{
// Get the path of the log file
string path = (LogManager.GetCurrentLoggers()[0].Logger.Repository.GetAppenders()[0] as FileAppender).File;
// Get the file
byte[] fileBytes = System.IO.File.ReadAllBytes(path);
string fileName = "Log.txt";
// Return the expected file
return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName);
}
我的問題是,當我打電話System.IO.File.ReadAllBytes(path);
我得到一個異常,導致日誌文件已經由另一個進程使用。
我已經把<lockingModel value="log4net.Appender.FileAppender+MinimalLock" /> (which should release the file after any modification) in my Web.Config
沒有成功。
Web.Config中開始log4net的配置:
<log4net>
<appender name="Appender-root" type="log4net.Appender.RollingFileAppender">
<lockingModel value="log4net.Appender.FileAppender+MinimalLock" />
<file value="Path..." />
<appendToFile value="true" />
似乎工作!非常感謝 !! 你知道嗎,我該如何重建log4net tracer? (在我關閉Appender之後) –