Ho un ruolo di lavoratore azzurro che ho configurato per utilizzare un applet Trace log4net che scrive su WindowsAzure.Diagnostics. Questo viene fatto effettuando le seguenti chiamate nel RoleEntryPoint del ruolo di lavoratore.log4net traceappender registra solo i messaggi con livello 'verbose' quando si utilizza Windows Azure DiagnosticsMonitor
using System;
using Microsoft.WindowsAzure.Diagnostics;
using log4net.Config;
namespace XXX
{
public class WorkerRole : RoleEntryPoint
{
public override bool OnStart()
{
var config = DiagnosticMonitor.GetDefaultInitialConfiguration();
config.Logs.ScheduledTransferLogLevelFilter = LogLevel.Warning;
config.Logs.ScheduledTransferPeriod = TimeSpan.FromMinutes(5);
config.WindowsEventLog.DataSources.Add("System!*");
config.WindowsEventLog.DataSources.Add("Application!*");
config.WindowsEventLog.ScheduledTransferLogLevelFilter = LogLevel.Error;
config.WindowsEventLog.ScheduledTransferPeriod = TimeSpan.FromMinutes(5);
DiagnosticMonitor.Start("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString", config);
XmlConfigurator.Configure();
}
}
}
Il file App.config è configurato nel modo seguente:
<log4net>
<appender name="TraceAppender" type="log4net.Appender.TraceAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%logger - %message" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="TraceAppender" />
</root>
</log4net>
<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>
</system.diagnostics>
Il risultato di questo è che tutti i messaggi (anche errori) vengono registrati nella memoria tabella come livello "verbose".
Come risolvere il problema?
Questo è ormai obsoleto. Vedere http://blog.kloud.com.au/2014/10/22/logging-with-log4net-and-azure-diagnostics-on-web-and-worker-roles/ per esempio. – Rory
Sei sicuro? Le persone sembrano ancora riscontrare questo problema con Microsoft.WindowsAzure.Diagnostics 2.5.0.0 –
hmmm:/no non sono sicuro. – Rory