public static void Log(this ILogger logger, TraceEventType eventType, EventProperties properties) { if (properties.ContainsKey(LoggerEvent.PARAMETERS_PROPERTY)) { if (properties[LoggerEvent.PARAMETERS_PROPERTY] == null || ((object[])properties[LoggerEvent.PARAMETERS_PROPERTY]).Length <= 0) { properties.Remove(LoggerEvent.PARAMETERS_PROPERTY); } } var loggerEvent = new LoggerEvent { EventType = eventType }; foreach (var property in properties) { loggerEvent[property.Key] = property.Value; } #if DEBUG if (!loggerEvent.Properties.ContainsKey(LoggerEvent.METHODNAME_PROPERTY)) { loggerEvent[LoggerEvent.METHODNAME_PROPERTY] = GetCallerMethodName(typeof(LoggerExtensions)); } #endif logger.Log(loggerEvent); }