【发布时间】:2019-06-13 07:22:40
【问题描述】:
我有 WCF 服务并希望启用日志记录。正如微软文档Configuring Message Logging 中所述,我在 Web.config 中添加了以下内容:
<system.diagnostics>
<sources>
<source name="System.ServiceModel.MessageLogging">
<listeners>
<add name="messages"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData="c:\logs\messages.svclog" />
</listeners>
</source>
</sources>
</system.diagnostics>
<system.serviceModel>
<diagnostics>
<messageLogging
logEntireMessage="true"
logMalformedMessages="false"
logMessagesAtServiceLevel="true"
logMessagesAtTransportLevel="false"
maxMessagesToLog="3000"
maxSizeOfMessageToLog="2000"/>
</diagnostics>
</system.serviceModel>
当最后一个日志中的消息数达到 maxMessagesToLog=3000 时,如何轮换日志,例如写入 messages1.svclog,然后写入 messages2.svclog 等?
我阅读了文章A Rolling XmlWriterTraceListener,但是当达到特定文件大小时,它会轮换日志文件。但是,当消息数达到 maxMessagesToLog 时,WCF 将停止记录。
【问题讨论】:
-
.Net WCF Service Trace Log with log file management (Rolling) 的可能重复项。尽管那里有指向上述同一篇文章的链接,但还有一些其他有用的提示。您可以按照上述方法制作自己的日志,或者按照其他答案所述,每天滚动一个新日志。