【发布时间】:2015-06-28 22:36:34
【问题描述】:
我有一个在 IIS 托管环境上运行的 ASP.Net MVC 应用程序, 我希望有一个应用程序日志文件来记录一些自定义事件和错误。
这样做的最佳做法是什么?
我是否应该在应用程序启动时打开文件(比如 log.txt),在需要时使用 StreamWriter 写入并在应用程序结束时关闭
或每次都打开 -> 写入 -> 关闭?
对于第一种方法,恐怕当应用程序域意外退出时,文件仍会保持打开状态,
对于第二种方法,可能由于多线程操作或太频繁的打开/关闭而导致 IO 错误?
有什么想法吗?
【问题讨论】:
-
有一些日志框架(例如 log4net)旨在考虑所有这些因素。
-
正如 AlexK 所建议的,已经有非常完善的开源日志记录/错误处理库,如 Log4net、NLog 等。这些是您最好的选择,因为它们已在数以千计的应用程序中使用。为什么要重新发明轮子..
-
即使您不想使用某些 3rd 方框架,您也可以使用 C# .net 框架中可用的现有功能,例如写信给
EventLog我建议您做更多研究就你而言,这只是一个自以为是的问题 -
我同意@AlexK。有一些可用的库是线程安全的,可以处理多个写入器和队列。
标签: c# asp.net-mvc file logging text