我有一个WCF服务(由IIS网页托管)正在运行,但我想将更多信息写入日志文件。
我继承了代码,它有一些简单的日志记录到文件。这适用于原始的开发人员机器,但我没有得到任何写出来的东西。请注意,它从配置中读取日志文件路径,我假设它是Web配置,但以防万一我现在硬编码了位置“c:\ temp \ logfile.log”。
我给了ASP的完全权限,然后USERS认为这是权限问题。
此外,我注意到WCF中内置了跟踪和消息日志记录。试过但不确定我是否正确地做了。
关于简单文件编写的任何想法?
我是否应该进行内置日志记录,如果有的话,是否有任何简单的例子?
谢谢!
答案 0 :(得分:3)
配置记录:
配置记录
1.在Configuration Editor中,选择Diagnostics节点。
2.在右窗格中,单击“启用MessageLogging”。
这将创建ServiceModelMessageLoggingListener和
监听器和源下的System.ServiceModel.MessageLogging节点
文件夹分别。
3.在左侧窗格中,选择Diagnostics节点下的MessageLogging。
4.选择此选项,将LogMessagesAtServiceLevel属性设置为True
从下拉列表中。
5.在左侧窗格中,选择下面的ServiceModelMessageLoggingListener
听众节点。
请注意InitData属性的默认值,该属性设置为 c:\ inetpub \ wwwroot \ WCFService \ web_messages.svclog,其中的位置 消息将被记录。
答案 1 :(得分:0)
请改用事件查看器日志记录,但您必须确保安装程序可以创建相应的事件查看器源。
答案 2 :(得分:0)
也许您应该使用Configuration Editor-Tool“SvcConfigEditor.exe”(see description on MSDN)。这允许以安静简单和结构化的方式配置WCF日志记录。
然后可以使用Service Trace Viewer-Tool“SvcTraceViewer.exe”(see on MSDN)分析日志文件。
这两个工具都与Visual Studio捆绑在一起,可以从Microsoft下载。
答案 3 :(得分:0)
要写入日志文件,请确保运行Web应用程序的标识具有对日志目录的写入权限。
IIS7: 您可以在IIS管理控制台中找到该标识。选择Web应用程序正在使用的应用程序池。单击“高级设置”。在属性窗口中,查找标识字段。它可能会说网络服务。这是需要对日志输出文件夹具有写入权限的帐户。
IIS6: 与IIS7相同,只需右键单击应用程序池并选择属性。 IIS6的属性窗口将具有“标识”选项卡。
如果您已在此目录中有一个日志文件,请尝试删除它并让框架创建它。
希望这有帮助。
答案 4 :(得分:0)
在<system.serviceModel>
<diagnostics>
<messageLogging
logEntireMessage="true"
logMalformedMessages="false"
logMessagesAtServiceLevel="true"
logMessagesAtTransportLevel="false"
maxMessagesToLog="3000"
maxSizeOfMessageToLog="2000"/>
</diagnostics>
并在<configuration>
<system.diagnostics>
<sources>
<source name ="System.ServiceModel" switchValue="Information, ActivityTracing">
<listeners>
<add name="xml" />
</listeners>
</source>
<source name ="System.ServiceModel.MessageLogging"
switchValue="Verbose, ActivityTracing">
<listeners>
<add name="xml" />
</listeners>
</source>
<source name ="System.Runtime.Serialization" switchValue="Verbose">
<listeners>
<add name="xml" />
</listeners>
</source>
</sources>
<sharedListeners>
<add name="xml" type="System.Diagnostics.XmlWriterTraceListener"
traceOutputOptions="LogicalOperationStack"
initializeData="C:\logs\RestAPISvcLog\Traces.svclog" />
</sharedListeners>
<trace autoflush="true" />
</system.diagnostics>
这将创建日志文件,您可以使用svctracelog viewer(VS附带)直接查看。
有关详细信息,请参阅此内容 - http://msdn.microsoft.com/en-us/library/ms730064(v=vs.110).aspx