日志文件与.net侦听器的循环
我有一个现有的.net服务,我想将其配置为将消息写入日志文件。我在服务配置中添加了以下内容:日志文件与.net侦听器的循环,.net,configuration,logging,.net,Configuration,Logging,我有一个现有的.net服务,我想将其配置为将消息写入日志文件。我在服务配置中添加了以下内容: <system.diagnostics> <sources> <source name="My.Service" switchValue="All"> <listeners> <add name="text" type="System.Diagnostics.TextWriterTraceListener" i
<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>
问题是日志文件很快变得非常大,因此我想知道是否可以配置某种日志循环。由于进程锁定文件以进行写入,因此无法手动旋转文件,例如使用脚本定期重命名文件,至少在不停止并重新启动服务的情况下是如此
谢谢你的建议。你能在文件名中加入日志循环吗 “c:\log.txt” 变成: “c:\logDDMMYYYY.txt”
这样,日志会在一天结束时自动滚动到一个新文件。也许您可以看看免费且易于使用的.NET日志库。此库已包含日志旋转 否则,您将使用您的服务来“解锁”文件和/或自动登录到新文件。我认为有一种方法可以做到这一点。您可以将其配置为每日或每周间隔
如果这还不够,那么您必须编写自己的tracelistener,只需从tracelistener继承并重写写入方法。看起来很有希望,但这些记录器类是否可以配置为跟踪侦听器?它应该…包含一个TracePender类。好的一点是,你可以随时扩展库并编写自己的附加器(=日志的写入位置和方式)哦..我忘了提到库是通过单独的配置文件完全可配置的谢谢,这正是我想要的,但我完全错过了它!我想知道为什么它是在Microsoft.VisualBasic程序集中定义的,而不是在System.Diagnostics中定义的。无论如何,我认为循环日志是一种相当普遍的需要。。。