什么是最好的翻转日志文件tracelistener for .NET

use*_*222 31 .net logging

我正在为.Net寻找一个好的TraceListener,它支持基于大小限制滚动日志文件.

约束

  • 使用跟踪日志记录中内置的.Net
  • 独立的类或二进制文件,不属于某个巨大的库
  • 允许根据大小滚动日志文件

csg*_*ero 32

您可以使用Microsoft.VisualBasic.Logging.FileLogTraceListener,它随.NET Framework一起提供.不要让命名空间中的VisualBasic吓到你,你只需要引用microsoft.visualbasic.dll程序集,它应该可以正常使用C#.

  • FileLogTraceListener不能用作"翻转日志文件".例如,它只能每天创建一个新文件,或者当日志文件的大小太大时跳过编写新消息. (9认同)
  • FileLogTraceListener,即基础.NET Framework,涵盖了您的需求.如果您需要更高级的侦听器选项,请查看Essential Diagnostics扩展(http://essentialdiagnostics.codeplex.com/) (4认同)

Ost*_*ati 9

每当我需要进行网络跟踪时,我都会将此配置代码段保留下来.我没有必要通过在运行时添加App.config中的引用来添加显式引用VB DLL的项目.

<system.diagnostics>
  <sources>
    <source name="System.Net">
      <listeners>
        <add name="System.Net"/>
      </listeners>
    </source>
    <source name="System.Net.Http">
      <listeners>
        <add name="System.Net"/>
      </listeners>
    </source>
    <source name="System.Net.Sockets">
      <listeners>
        <add name="System.Net"/>
      </listeners>
    </source>
  </sources>
  <switches>
    <add name="System.Net" value="Verbose"/>
    <add name="System.Net.Http" value="Verbose"/>
    <add name="System.Net.Sockets" value="Verbose"/>
  </switches>
  <sharedListeners>
    <add name="System.Net"
          type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
          traceOutputOptions="DateTime,ProcessId,ThreadId"
          customLocation="c:\temp"
          location="Custom"
          logFileCreationSchedule="Daily"
          baseFileName="NetworkTrace"/>
  </sharedListeners>
  <trace autoflush="true"/>
</system.diagnostics>
Run Code Online (Sandbox Code Playgroud)

并在运行时添加引用

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.VisualBasic"  culture="neutral" publicKeyToken="b03f5f7f11d50a3a"/>
        <codeBase version="10.0.0.0" href="file://C:/Program Files (x86)/Reference Assemblies/Microsoft/Framework/.NETFramework/v4.5/Microsoft.VisualBasic.dll"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
Run Code Online (Sandbox Code Playgroud)


Aar*_*ell 4

我是 log4net ( http://logging.apache.org/log4net/index.html )的忠实粉丝,它非常容易配置并支持您想要的任何日志类型,但也可以编写自定义日志类型。

它还可以根据日志级别执行不同的操作。我们将所有消息记录到文本文件中,然后错误 -> 致命发送电子邮件

  • TraceAppender 允许您将 log4net 跟踪重定向到框架(并执行非常基本的 Trace.Write,因此没有级别、过滤、事件 ID 等,基本上是一个非常糟糕的工作)。但是,如果您已经在使用 .NET Framework(即traceSource.TraceEvent())进行跟踪,那么它就没有帮助,或者对 WCF、WIF 或您打开任何其他框架跟踪也没有帮助。 (2认同)