我有一些.Net WCF服务,对于这些服务,我配置了app.config文件以便将可发送和接收的消息记录到可读的.svclog文件中通过“服务跟踪查看器工具”(SvcTraceViewer.exe)。该工具可以很好地清晰地显示正在处理的SOAP消息。.Net WCF服务跟踪日志和日志文件管理(滚动)
我必须使用System.Diagnostics.XmlWriterTraceListener侦听器来正确格式化可通过服务跟踪查看器工具处理的.svclog文件。
我遇到的问题是.svclog文件变得太大&服务跟踪查看器工具由于响应时间较慢而变得不可用。
服务跟踪查看器工具确实提供了一种功能,可以在文件大小> 40MB时打开部分日志文件,但这仍然太慢。在app.config文件中似乎没有工具来配置.svclog,以便每天自动创建新文件或文件达到一定大小时。
有一个名为Microsoft.VisualBasic.Logging.FileLogTraceListener的文本日志侦听器,它支持每日滚动日志文件的logfilecreationschedule =“Daily”属性,但是对于操作支持人员来说,此侦听器生成的日志文件很困难用作日志条目不能很好地呈现,而大型xml文档会造成混淆。
这方面的最佳做法是什么?看起来好像我可能不得不编写一个自定义的WCF日志扩展,看起来像是矫枉过正,只是为了解决内置System.Diagnostics中缺少日志文件滚动功能的问题。 XmlWriterTraceListener日志侦听器/ appender。
我也尝试过一个脚本来停止我的应用程序并重命名日志文件,但这似乎不可能,因为在Windows上,handle.exe和openfile实用程序无法关闭通过网络共享打开的文件,所以我如果有人通过网络共享浏览旧日志文件,则无法重命名/移动旧日志文件。很快就会发布一个单独的问题。
谢谢, 马特。
虽然它是可行的,但您不应该始终启用WCF跟踪。它被设计为一种故障排除方法,并对性能有影响。在生产环境中禁用它是最佳做法。 –