我正在使用Trace
将日志记录添加到新的ASP.NET站点。当我在本地运行项目时,日志记录按预期工作。当我发布项目时(通过文件系统通过Visual Studio发布),该站点将成功登录一段时间(从几秒到几分钟),但最终会停止写入输出文件。
以下是我在TraceListener
中初始化Global.asax.cs
的方式:
protected void Application_Start()
{
textWriterTL = new TextWriterTraceListener(logFilePath);
Trace.Listeners.Add(textWriterTL);
Trace.AutoFlush = true;
...
}
稍后,在Web API控制器方法中,我这样写Trace
:
Trace.WriteLine("An error occurred").
我不觉得我做任何非传统的事情。为什么我的网站会在一段时间后停止记录?
答案 0 :(得分:0)
根据MSDN文档,在<system.diagnostics>
<trace autoflush="true">
<listeners>
<add type="System.Diagnostics.TextWriterTraceListener" name="FileListener" initializeData="MyLog.log" />
<remove name="Default" />
</listeners>
</trace>
</system.diagnostics>
方法中你不能实例化任何类:
您应该在应用程序启动期间仅设置静态数据。不要设置 任何实例数据,因为它只能用于第一个 创建的HttpApplication类的实例。
我建议在Web.config中设置TraceListener,就像这个示例:
{{1}}