首页 文章

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

提问于
浏览
4

我有一个 existing .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>

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

谢谢你的任何建议 .

3 回答

  • 9

    我认为可以解决的问题是FileLogTraceListener . 您可以将其配置为每日或每周间隔 .

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

  • 0

    你可以在文件名中内置日志轮换,以便:

    “C:\ log.txt的”

    变为:

    “C:\ logDDMMYYYY.txt”

    这样,日志会在一天结束时自动转到新文件 .

  • 0

    也许您可以查看log4net一个免费且易于使用的.NET日志记录库 . 该库已包含日志旋转 .

    否则,您将获得服务“解锁”文件和/或自动登录到新文件 .

相关问题