向 web.config 添加 tracelistener

18

我想在网站上使用下面的代码。 我应该添加哪些config sectionsweb.config文件中,以便将输出记录到文件或Windows事件日志中?

using System.Diagnostics;

// Singleton in real code
Class Logger
{
   // In constructor: Trace.AutoFlush = false;

   public void Log(message)
   {
       String formattedLog = formatLog(message);
       Trace.TraceInformation(formattedLog);
       Trace.Flush();
   }
}
1个回答

26

你应该使用 system.diagnostics 部分。下面是来自 MSDN 的文本文件示例:

<configuration>
  <system.diagnostics>
    <trace autoflush="false" indentsize="4">
      <listeners>
        <add name="myListener" 
          type="System.Diagnostics.TextWriterTraceListener" 
          initializeData="TextWriterOutput.log" />
        <remove name="Default" />
      </listeners>
    </trace>
  </system.diagnostics>
</configuration>

这是用于系统事件日志的:http://msdn.microsoft.com/en-us/library/system.diagnostics.eventlogtracelistener.aspx


3
在 ASP.NET 中将日志记录到 Windows 事件日志并不是一件简单的事情,因为它需要管理员权限。 - Xaqron
你只需要在web config中添加这段代码吗?还是你还需要下面的代码?' 为事件日志创建一个跟踪侦听器。 Dim myTraceListener As New EventLogTraceListener("myEventLogSource")' 将事件日志跟踪侦听器添加到集合中。 Trace.Listeners.Add(myTraceListener)' 将输出写入事件日志。 Trace.WriteLine("测试输出") - Brian McCarthy
TextWriterOutput.log 文件将输出到哪里? - Brian McCarthy
1
直到我关闭自定义错误,才得以输出日志文件。 <system.web><customErrors mode="Off"/> ... - RobRolls
我建议使用类似Log4Net的工具,这将更好地控制日志记录。另外警告:请注意TextWriterTraceListener没有最大文件大小限制!目前我正在调查一个客户投诉,有人让它一直运行,现在他们有了一个巨大的日志文件!它会一直记录下去,直到填满驱动器。 - MBentley
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接