我们也在 Azure 上使用 Log4Net
小警告,当每个实例运行多个角色时,我只能让一个角色[主要角色]真正成功地写入日志......[不好!!!]
如何设置...很简单。
在 Global.asax 中按照通常的方式配置 log4net
protected void Application_Start()
{
log4net.Config.XmlConfigurator.Configure();
}
在您的角色入口点...也运行配置。 F#*^ 知道为什么,但如果你不在这两个地方都这样做,它就不会工作(无论如何不是我的情况)
public override void Run()
{
log4net.Config.XmlConfigurator.Configure();
}
然后在你的配置文件中
<log4net>
<appender name="TraceAppender" type="log4net.Appender.TraceAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="TraceAppender" />
</root>
</log4net>
确保启用了 Azure 跟踪
<system.diagnostics>
<trace>
<listeners>
<add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=1.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" name="AzureDiagnostics">
<filter type="" />
</add>
</listeners>
</trace>
我们选择不使用 Storage Studio 的原因是,任何来自 Azure 的数据都需要付费...Azure 中的数据交易是免费的,连接到表存储非常简单,因此我们构建了一个屏幕来显示日志,花了 2/ 3小时就像炸弹一样有效