C# Microsoft企业库日志记录应用程序块格式不正确
我们正在使用MS Enterprise Library 5.0登录我们的网站 当异常未处理时,我们希望将其与一段上下文信息一起记录,以帮助调试该问题。因此,我们有一个位于网站顶部的C# Microsoft企业库日志记录应用程序块格式不正确,c#,enterprise-library,enterprise-library-5,C#,Enterprise Library,Enterprise Library 5,我们正在使用MS Enterprise Library 5.0登录我们的网站 当异常未处理时,我们希望将其与一段上下文信息一起记录,以帮助调试该问题。因此,我们有一个位于网站顶部的HttpModule,其任务是捕获这些事件并将它们记录到windows应用程序事件日志中。这些都是香草味的东西 它在我们的生产网络服务器上工作。它不能在我们的测试web服务器上正常工作 问题在于LogEvent.ExtendedProperties集合没有正确呈现(或者根本没有呈现)。相反,替换令牌只是逐字地转储到事件
HttpModule
,其任务是捕获这些事件并将它们记录到windows应用程序事件日志中。这些都是香草味的东西
它在我们的生产网络服务器上工作。它不能在我们的测试web服务器上正常工作
问题在于LogEvent.ExtendedProperties
集合没有正确呈现(或者根本没有呈现)。相反,替换令牌只是逐字地转储到事件日志中
生产事件日志显示的信息如下(略为缩写),所有内容的格式都符合您的预期:
12/10/2013 06:07:13 PM
LogName=Application
SourceName=Secure Website
EventCode=1729
EventType=2
Type=Error
ComputerName=WSSECURE09.website.nordstrom.com
TaskCategory=%1
OpCode=Info
RecordNumber=220338
Keywords=Classic
Message=Message: Unhandled exception in Secure Website: System.ServiceModel.FaultException`1[Nordstrom.Contracts.Fault.ServiceFault]:
Argument shopper is invalid.
Email is null or empty.
(Fault Detail is equal to Error code: InvalidArguments).
.
.
.
Extended Properties: Shopper ID - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
其中最后一行(ExtendedProperties:…
)转储ExtendedProperties
集合,并提供遇到问题的购物者的ID以帮助调试它。在我们的测试环境中,扩展属性集合根本不会被转储。取而代之的是,模板中的原始标记逐字写出,不进行替换:
Extended Properties: {key} - {value}
)}
下面是正在使用的格式化程序模板,直接来自web.config文件。为了可读性,我添加了换行符,但这是唯一的变化:
下面是[稍微消毒过的]日志代码:
private static void loghandledeexception(异常ex)
{
HttpContext=HttpContext.Current;
LogEntry entry=新的LogEntry();
条目。类别。添加(“错误”);
条目。优先级=1;
entry.Severity=TraceEventType.Critical;
entry.Message=string.Format(“安全网站中未处理的异常:{0}”,例如);
entry.EventId=(int)EventId.UnhandledException;
//如果我们可以在http上下文中找到购物者id,请将其添加到日志中
购物者购物者=HttpContext.Current.Items[“购物者”]作为购物者;
if(购物者!=null)
{
bool hasShopperId=!string.IsNullOrWhiteSpace(shopper.Id);
if(hasShopperId)
{
KeyValuePair项=新的KeyValuePair(“ShopperID”,shopper.Id);
entry.ExtendedProperties.Add(项);
}
}
Logger.Write(条目);
返回;
}
我们的配置管理团队推出了自己的工具来进行配置文件转换:
阿瑟·柯南·道尔爵士的《四个星座中的福尔摩斯》
我们的配置管理团队推出了自己的工具来进行配置文件转换:
阿瑟·柯南·道尔爵士的《四个星座中的福尔摩斯》
那么在测试环境中,是不是只有ExtendedProperties标记没有翻译,还是所有的标记都没有翻译?那么在测试环境中,是不是只有ExtendedProperties标记没有翻译,还是所有的标记都没有翻译?