拼命尋求解決方案來讓log4net在Azure Worker角色中工作。慢慢地駕駛我c-razy。Log4Net爲什麼不能在帶有表存儲的Azure上工作?
我已經按照概述了這個博客http://blog.tylerdoerksen.com/2012/04/17/logging-in-azure-part-2table-storage(感謝),這似乎是有道理的和log4net的日誌記錄的工作原理是在以下條件下的夢想步驟:
- 運行在模擬器輔助角色本地和堅持日誌到本地存儲
- 運行在模擬器輔助角色本地和持續的日誌發送給遠程分期Azure的表存儲
當我部署的Worker角色服務到Azure將其記錄在LogEntities表中沒有任何內容。這是一點點,這一點令人難以置信的令人沮喪。
我已經打開的輔助角色的app.config log4net的調試,我看到下面的痕跡在WADLogsTable
log4net的:完成附加器名爲[TableStorageAppender。
就是這樣。沒有其他log4net調試信息,我通常會看到自從將
<appSettings>
<add key="log4net.Internal.Debug" value="true"/>
</appSettings>
添加到我的工作角色app.config。
我在Worker角色覆蓋運行方式配置log4net的:
public override void Run()
{
try
{
XmlConfigurator.Configure();
ILog Logger = LogManager.GetLogger(GetType());
Trace.WriteLine("Trace: CheckInService.Run()");
Logger.Info("log4net: CheckInService.Run()");
//open the Service and do some other stuff etc
while (true)
{
Thread.Sleep(1800000);
}
catch (Exception ex)
{
Trace.TraceError("There was a problem opening the CheckInService");
}
}
這是我的全部的app.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" name="log4net" />
</configSections>
<appSettings>
<add key="log4net.Internal.Debug" value="true"/>
</appSettings>
<log4net>
<appender type="Cloud.Services.Logging.TableStorageAppender, Cloud.Services.Logging" name="TableStorageAppender">
</appender>
<root>
<level value="All" />
<appender-ref ref="TableStorageAppender" />
</root>
</log4net>
<system.diagnostics>
<trace autoflush="true">
<listeners>
<add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=1.8.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
name="AzureDiagnostics">
<filter type="" />
</add>
</listeners>
</trace>
</system.diagnostics>
</configuration>
日誌記錄的appender(TableStorageAppender)的實現是在它自己的大會(Cloud.Services.Logging),但我認爲這沒有什麼區別?
任何人有任何想法?
你有沒有解決這個問題?我遇到同樣的問題 – Kesty 2015-01-12 09:35:02