gpt4 book ai didi

asp.net - ASP.NET 4 中的简单跟踪

转载 作者:行者123 更新时间:2023-12-02 01:19:21 26 4
gpt4 key购买 nike

我想使用 System.Diagnostics.Trace 类在文本文件中对我的应用程序执行简单的跟踪。我想使用这个而不是 log4net 或任何其他解决方案的原因是……它必须简单:)

所以,我在 C# 中得到了这个工作:

        TextWriterTraceListener listener = new TextWriterTraceListener(Server.MapPath("~/App_Data/log.txt"));
listener.Filter = new EventTypeFilter(SourceLevels.Warning);
Trace.Listeners.Add(listener);

或者 Web.config 中的等效项:

  <system.diagnostics>
<sharedListeners>
<add name="log" type="System.Diagnostics.TextWriterTraceListener" initializeData="App_Data/log.txt">
<filter type="System.Diagnostics.EventTypeFilter" initializeData="Warning" />
</add>
</sharedListeners>
<trace autoflush="true">
<listeners>
<clear/>
<add name="log"/>
</listeners>
</trace>
</system.diagnostics>

所以当我执行这个时:

        Trace.TraceInformation("info");
Trace.TraceWarning("warning");
Trace.TraceError("error");

我收到了有关警告和错误的行,这正是我所期望的。问题是,如何使用 SourceLevels 枚举中出现的其余级别?

对于 Web 应用程序使用 System.Diagnostics.Trace 有什么缺点吗? (autoflush 设置为 true 仅用于测试目的)

干杯。

最佳答案

您需要更多配置。此代码块会将所有错误记录到一个文件,并将所有信息和 ActivityTracing 节点记录到另一个文件。 (此示例适用于 WCF,您需要将名称设置为您需要的任何名称。)

<system.diagnostics>
<sources>
<source name="System.ServiceModel"
switchValue="Information, ActivityTracing"
propagateActivity="true" >
<listeners>
<add name="xml"/>
</listeners>
</source>
<source name="System.ServiceModel.MessageLogging">
<listeners>
<add name="xml"/>
</listeners>
</source>
<source name="ServiceFaultInfoTrace"
switchName="sourceSwitch"
switchType="System.Diagnostics.SourceSwitch">
<listeners>
<add name="ServiceFaultInfoTraceText" />
<remove name="Default"/>
</listeners>
</source>
</sources>
<switches>
<add name="sourceSwitch" value="Error"/>
</switches>
<trace autoflush="true" indentsize="4">
<listeners>
<add name="ServiceFaultInfoTraceText" />
</listeners>
</trace>
<sharedListeners>
<add name="xml"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData="C:\log\Api-Traces.svclog" />
<add name="ServiceFaultInfoTraceText"
type="System.Diagnostics.TextWriterTraceListener"
traceOutputOptions="DateTime"
initializeData="C:\log\Api-Errors.txt" />
</sharedListeners>
</system.diagnostics>

重要的节点是 switchValue (和 switchName)节点。将它们设置为您想要为源记录的任何级别。

http://msdn.microsoft.com/en-us/library/system.diagnostics.tracelevel.aspx

关于asp.net - ASP.NET 4 中的简单跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7016005/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com