我想从Text file ::
中获取Text数据为此,我使用了像::
这样的代码 public ActionResult Log()
{
StreamReader reader = new StreamReader(Server.MapPath("~/Views/Builder/TestLogger.txt"));
return View(reader);
}
我从“Log4Net”制作了这个文本文件。 我想知道如何在MVC应用程序的“视图”或“操作”中获取此文本文件的内容。
答案 0 :(得分:10)
您可以使用此代码:
public ActionResult Log()
{
var fileContents = System.IO.File.ReadAllText(Server.MapPath("~/Views/Builder/TestLogger.txt"));
return Content(fileContents);
}
答案 1 :(得分:1)
您可以使用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 ");
}
}
答案 2 :(得分:1)
根据您对其他答案的评论,您尝试使用的日志文件目前似乎已被服务器锁定。它可能会打开并写入日志文件,因为您已经启动了一个记录的请求,因此您阻止自己阅读它。
假设您正在使用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