【问题标题】:Writing to a new log file each day with TraceSource每天使用 TraceSource 写入新的日志文件
【发布时间】:2012-06-04 16:37:39
【问题描述】:

我在我的应用程序中使用记录器来写入文件。 app.config文件中已经定义了source、switch和listeners如下:

  <system.diagnostics>
    <sources>
      <source name="LoggerApp" switchName="sourceSwitch" switchType="System.Diagnostics.SourceSwitch">
        <listeners>
          <add name="myListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="myListener.log" />
        </listeners>
      </source>
    </sources>
    <switches>
      <add name="sourceSwitch" value="Information" />
    </switches>
  </system.diagnostics>

在里面,我的.cs代码,我使用记录器如下:

private static TraceSource logger = new TraceSource("LoggerApp");
logger.TraceEvent(TraceEventType.Information, 1, "{0} : Started the application", DateTime.Now);

我必须怎么做才能每天创建一个新的日志文件,而不是每次都写入同一个日志文件?

【问题讨论】:

  • 一些记录器开箱即用地支持这一点(例如log4net) - 您可能需要考虑它而不是跟踪记录

标签: c#


【解决方案1】:

我必须怎么做才能每天创建一个新的日志文件,而不是每次都写入同一个日志文件?

您必须自己创建TraceListener,而不是使用TextWriterTraceListener。这将允许您的 TraceListener 实现每天更改日志文件,或执行您希望的任何其他自定义行为。

【讨论】:

    【解决方案2】:
    Try use:
    
    <system.diagnostics>
        <sources>
          <source name="LoggerApp" switchName="sourceSwitch" switchType="System.Diagnostics.SourceSwitch">
            <listeners>
              <add name="myListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="myListener-{0:dd}-{0:MM}-{0:yyyy}.log" />
            </listeners>
          </source>
        </sources>
        <switches>
          <add name="sourceSwitch" value="Information" />
        </switches>
      </system.diagnostics>
    

    【讨论】:

    • 这对我不起作用:initializeData="myListener-{0:dd}-{0:MM}-{0:yyyy}.log"
    • 配置中的 initializeData="myListener-{0:dd}-{0:MM}-{0:yyyy}.log" 对我不起作用。它抛出了 NotSupportedException 消息“不支持给定路径的格式”
    猜你喜欢
    • 1970-01-01
    • 2014-04-17
    • 1970-01-01
    • 1970-01-01
    • 2012-10-17
    • 1970-01-01
    • 1970-01-01
    • 2014-11-11
    • 2011-02-23
    相关资源
    最近更新 更多