WorkerRole log4net跟踪追加器日志未出现在输出窗口中
我有许多工作者角色项目,我想利用log4net功能来记录信息。不幸的是,我的日志实际上没有出现在我的输出窗口中 我跨过调试器中的日志行,输出窗口将弹出以下行: “WaWorkerHost.exe”(CLR v4.0.30319:RdRuntime):已加载 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Runtime.Caching\v4.0.0.0_uuB03F5F7F11D50A3A\System.Runtime.Caching.dll'。 已跳过加载符号。模块已优化,调试器选项 “仅我的代码”已启用 鉴于这是我的代码,我很困惑为什么我会看到这个异常。以下是我的日志app.config设置:WorkerRole log4net跟踪追加器日志未出现在输出窗口中,log4net,azure-worker-roles,azure-diagnostics,Log4net,Azure Worker Roles,Azure Diagnostics,我有许多工作者角色项目,我想利用log4net功能来记录信息。不幸的是,我的日志实际上没有出现在我的输出窗口中 我跨过调试器中的日志行,输出窗口将弹出以下行: “WaWorkerHost.exe”(CLR v4.0.30319:RdRuntime):已加载 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Runtime.Caching\v4.0.0.0_uuB03F5F7F11D50A3A\System.Runtime.Caching.dll
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="Montetary.Agents.HappyBirthday.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<system.diagnostics>
<trace>
<listeners>
<add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=2.8.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" name="AzureDiagnostics">
<filter type="" />
</add>
</listeners>
</trace>
</system.diagnostics>
<log4net>
<appender name="AzureTraceAppender" type="log4net.Appender.TraceAppender">
<layout type="log4net.Layout.PatternLayout">
<!-- can be any pattern you like -->
<conversionPattern value="%logger - %message" />
</layout>
</appender>
<!-- does not have to be at the root level -->
<root>
<level value="ALL" />
<appender-ref ref="AzureTraceAppender" />
</root>
</log4net>
,但结果是一样的有些东西你可以检查:
在写入日志文件之前是否调用log4net configure(仅一次即可):
下一步是将刷新添加到配置中:
<appender name="AzureTraceAppender" type="log4net.Appender.TraceAppender">
<param name="ImmediateFlush" value="true" />
<layout type="log4net.Layout.PatternLayout">
<!-- can be any pattern you like -->
<conversionPattern value="%logger - %message" />
</layout>
</appender>
。它应该记录到您配置的侦听器中。将autoflush=“true”选项添加到跟踪元素。或者在您可以写入和访问的工作人员角色上查找目录以读取日志。您要在哪里查看日志?它们在Visual studio输出窗口中不可见。您需要连接到存储帐户并查看表“WADLogsTable”,根据我读过的许多博客,traceappender应该在记录时写入输出窗口:如果这不是用于写入输出日志的正确log4net appender,请告诉我,我将使用任何工具。在将项目上载到Azure之前,我要确保我正在将正确的内容写入日志。如果您希望将日志写入输出窗口,则需要禁用配置文件中的诊断配置。您对的整个部分进行注释,然后尝试更新。我放弃了log4net,转而使用diagnostics框架。感谢peter,我将尝试使用ImmediateFlush来查看输出是否转到输出窗口。我已将XmlConfigurator添加到assemblyinfo,并包括ImmediateFlush,但没有骰子,仍然不起作用。我已经删除了log4net,现在正在直接使用正在工作的诊断工具。
<appender name="AzureTraceAppender" type="log4net.Appender.TraceAppender">
<param name="ImmediateFlush" value="true" />
<layout type="log4net.Layout.PatternLayout">
<!-- can be any pattern you like -->
<conversionPattern value="%logger - %message" />
</layout>
</appender>