这是我的配置文件
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
</configSections>
<loggingConfiguration name="" tracingEnabled="true" defaultCategory="General" >
<listeners>
<add name="Event Log Listener" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.FormattedEventLogTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.FormattedEventLogTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
source="Enterprise Library Logging" formatter="Text Formatter"
log="" machineName="." traceOutputOptions="None" />
<add name="Rolling Flat File Trace Listener" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.RollingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
fileName="F:\MyLogFile.log" footer="" header="" rollInterval="Hour"
traceOutputOptions="None" formatter="Text Formatter" />
</listeners>
<formatters>
<add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
template="{timestamp} {severity} {message} "
name="Text Formatter" />
</formatters>
<categorySources>
<add switchValue="All" name="General">
<listeners>
<add name="Rolling Flat File Trace Listener" />
</listeners>
</add>
</categorySources>
<specialSources>
<allEvents switchValue="All" name="All Events" />
<notProcessed switchValue="All" name="Unprocessed Category" />
<errors switchValue="All" name="Logging Errors & Warnings">
<listeners>
<add name="Rolling Flat File Trace Listener" />
</listeners>
</errors>
</specialSources>
</loggingConfiguration>
</configuration>
当我使用下面的代码时
Logger.Write("hello world", "", 0, 0, TraceEventType.Information);
我在日志文件
中得到了关注3/4/2011 7:40:26 PM错误没有明确的类别''映射。日志条目是:
时间戳:2011年3月4日下午7:40:26
消息:Hello World
类别:
优先级:0
EventId:0
严重性:信息
标题:
机器:MyPC
App Domain:ConsoleApplication1.vshost.exe
ProcessId:8912
进程名称:C:\ ConsoleApplication \ bin \ Debug \ ConsoleApplication.vshost.exe
主题名称:
Win32 ThreadId:5496
扩展属性:
我做错了什么使它不尊重我在格式化程序中定义的template =“{timestamp} {severity} {message}”。
答案 0 :(得分:2)
您已使用“常规”名称定义了类别,但在您登录时使用的是“”类别。
Logger.Write("hello world", "", 0, 0, TraceEventType.Information);
因此,您的“常规”类别不会处理您的LogEntry,而是由specialSource
notProcessed
处理。这就是“没有明确的类别映射”的消息,试图告诉你。
要使用您的类别,请将名称传递到Write
方法:
Logger.Write("hello world", "General", 0, 0, TraceEventType.Information);
或者不指定类别,因为“General”被定义为defaultCategory。