我有一个 WCF RESTful Web 服务,我想知道是否可以在每次方法调用之前和每次方法调用之后记录当前时间(我的意思是在某些操作合同中定义的方法)。我不想在方法本身中包含日志记录。我需要在服务器端进行登录。
问问题
184 次
2 回答
1
WCF 应用程序不会写入日志,除非您已向它们添加日志记录。检查一下http://msdn.microsoft.com/en-us/library/ms733025.aspx 您可以尝试在配置 xml 文件中添加侦听器。
<configuration>
<system.diagnostics>
<sources>
<source name="System.ServiceModel"
switchValue="Information, ActivityTracing"
propagateActivity="true">
<listeners>
<add name="traceListener"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData= "c:\log\Traces.svclog" />
</listeners>
</source>
</sources>
</system.diagnostics>
</configuration>
于 2013-08-19T09:24:22.787 回答
0
尝试以下简单的方法进行测试而不是生产:
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.AppendLine(DateTime.Now.ToString()); //START
wcfService.ActionCallMethod(); //THIS IS AN EXAMPLE SERVICE CALL WHERE YOU WILL MAKE THE CALL
stringBuilder.AppendLine(DateTime.Now.ToString()); //END
System.IO.File.WriteAllLines(@"c:\logfile.txt", stringBuilder.ToString());
您还可以将文件替换为数据库写入/日志操作。我建议创建一个自定义类,您可以调用它,传递一个持久化到数据库自定义日志表的日期时间戳。
在开发和测试期间,我会将它与 WCF svclog 文件结合起来,以确保在不转的情况下不会出现任何问题。
于 2013-08-19T09:06:04.647 回答