Tengo una función de trabajador azul que he configurado para usar un Apilador de seguimiento de log4net que escribe en WindowsAzure.Diagnostics. Esto se hace realizando las siguientes llamadas en RoleEntryPoint de la función de trabajador.log4net traceappender solo registra mensajes con nivel 'verbose' cuando se usa 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();
}
}
}
El archivo App.config está configurado de la siguiente manera:
<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>
El resultado de esto es que todos los mensajes (incluso los errores) se registran en el almacenamiento de tablas como el nivel "prolija".
¿Cómo solucionar esto?
Esto ahora está desactualizado. Consulte http://blog.kloud.com.au/2014/10/22/logging-with-log4net-and-azure-diagnostics-on-web-and-worker-roles/, por ejemplo. – Rory
¿Estás seguro? La gente todavía parece estar experimentando este problema con Microsoft.WindowsAzure.Diagnostics 2.5.0.0 –
hmmm:/no, no estoy seguro. – Rory