使用.net侦听器记录文件旋转

Pao*_*sco 4 .net configuration logging

我有一个现有的 .net服务,我想配置它来将消息写入日志文件.我在服务配置中添加了以下内容:

<system.diagnostics>
  <sources>
    <source name="My.Service" switchValue="All">
      <listeners>
        <add name="text" type="System.Diagnostics.TextWriterTraceListener" initializeData="c:\log.txt" traceOutputOptions="Timestamp"/>
      </listeners>
    </source>
  </sources>
</system.diagnostics>
Run Code Online (Sandbox Code Playgroud)

问题是日志文件变得非常大,所以我想知道是否可以配置某种日志轮换.
由于进程锁定文件以进行写入,因此无法手动旋转文件,例如脚本定期重命名文件,至少不会停止并重新启动服务.

谢谢你的任何建议.

jms*_*era 9

我认为可以使用FileLogTraceListener.您可以将其配置为每日或每周间隔.

如果它还不够,那么你将不得不编写自己的tracelistener,只需从TraceListener继承并覆盖write方法.

  • 谢谢,这正是我想要的,但我完全错过了!我想知道为什么它在Microsoft.VisualBasic程序集中定义而不是System.Diagnostics,无论如何,我认为旋转日志是一个相当普遍的需求...... (2认同)