我想从文本文件中获取文本数据::
为此,我使用了类似 ::
public ActionResult Log()
{
StreamReader reader = new StreamReader(Server.MapPath("~/Views/Builder/TestLogger.txt"));
return View(reader);
}
我从“Log4Net”制作了这个文本文件。我想知道如何在 MVC 应用程序的“视图”或“操作”中获取此文本文件的内容。
我想从文本文件中获取文本数据::
为此,我使用了类似 ::
public ActionResult Log()
{
StreamReader reader = new StreamReader(Server.MapPath("~/Views/Builder/TestLogger.txt"));
return View(reader);
}
我从“Log4Net”制作了这个文本文件。我想知道如何在 MVC 应用程序的“视图”或“操作”中获取此文本文件的内容。
您可以使用以下代码:
public ActionResult Log()
{
var fileContents = System.IO.File.ReadAllText(Server.MapPath("~/Views/Builder/TestLogger.txt"));
return Content(fileContents);
}
您可以使用ContentResult
,它用于从控制器操作返回文本内容。
[HttpGet]
public ActionResult Log() {
try {
string content = string.Empty;
using (var stream = new StreamReader(Server.MapPath("~/Views/Builder/TestLogger.txt"))) {
content = stream.ReadToEnd();
}
return Content(content);
}
catch (Exception ex) {
return Content("Something ");
}
}
根据您对其他答案的评论,您尝试使用的日志文件似乎当前已被服务器锁定。它可能会打开并写入日志文件,因为您已经启动了一个正在记录的请求,因此您阻止自己阅读它。
假设您在实例化记录器时使用FileAppender
, 设置appender.LockingModel = FileAppender.MinimalLock
应该允许在没有记录任何内容时访问文件,而不是 log4net 进程在运行时保持其锁定。
如果所有属性都在运行前设置,这也可以在配置中设置:
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
您不是第一个遇到此问题的人:http: //hoenes.blogspot.com/2006/08/displaying-log4net-log-file-on-aspnet.html