private static void OnLogMessage(object sender, LogMessageEventArgs e)
{
if (LogInfo.IgnoreCatelLogging && e.Log.IsCatelLogging)
{
return;
}
if (!LogInfo.IsLogEventEnabled(e.LogEvent))
{
return;
}
LogMessage.SafeInvoke(sender, e);
var logListeners = GetThreadSafeLogListeners();
if (logListeners.Count == 0)
{
return;
}
foreach (var listener in logListeners)
{
if (IsListenerInterested(listener, e.LogEvent))
{
listener.Write(e.Log, e.Message, e.LogEvent, e.ExtraData, e.LogData, e.Time);
switch (e.LogEvent)
{
case LogEvent.Debug:
listener.Debug(e.Log, e.Message, e.ExtraData, e.LogData, e.Time);
break;
case LogEvent.Info:
listener.Info(e.Log, e.Message, e.ExtraData, e.LogData, e.Time);
break;
case LogEvent.Warning:
listener.Warning(e.Log, e.Message, e.ExtraData, e.LogData, e.Time);
break;
case LogEvent.Error:
listener.Error(e.Log, e.Message, e.ExtraData, e.LogData, e.Time);
break;
case LogEvent.Status:
listener.Status(e.Log, e.Message, e.ExtraData, e.LogData, e.Time);
break;
}
}
}
}