我有一个 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 回答
我认为可以解决的问题是FileLogTraceListener . 您可以将其配置为每日或每周间隔 .
如果它还不够,那么你将不得不编写自己的tracelistener,只需从TraceListener继承并覆盖write方法 .
你可以在文件名中内置日志轮换,以便:
“C:\ log.txt的”
变为:
“C:\ logDDMMYYYY.txt”
这样,日志会在一天结束时自动转到新文件 .
也许您可以查看log4net一个免费且易于使用的.NET日志记录库 . 该库已包含日志旋转 .
否则,您将获得服务“解锁”文件和/或自动登录到新文件 .