我在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之后) –