private static void DefaultLogWriter(LogTypeEnum type, LogContextEnum context, string message, object additionalData) { if (_logger == null) { throw new InvalidOperationException($"Logging is not initialized. Run '{nameof(Initialize)}' first."); } // does not block invoking code Task.Run(async() => { try { var logRecord = new LogRecord() { UniqueId = $"{Guid.NewGuid():N}{Guid.NewGuid():N}", // double GUID KioskVersion = _kioskVersion, LocalTime = DateTime.Now, Type = type, Context = context, Message = message, AdditionalDataJson = _logger.SerializeObject(additionalData), }; await _logger.MoveLogRecordToQueueAsync(logRecord); } catch { // ignore to avoid infinite recursion } }); }
private void Write(LogTypeEnum type, LogContextEnum context, string message, object additionalData, string callerName) { var callerNamePrefix = string.IsNullOrEmpty(callerName) || callerName == _operationName || callerName == _operationName + "Async" ? null : $"{callerName}: "; // modify message with message = $"'{_componentFullName}'.{_operationName}: {callerNamePrefix}{message}"; Log.Write(type, context, message, additionalData); }
public static void Trace(LogContextEnum context, string message, object additionalData = null) { Write(LogTypeEnum.Trace, context, message, additionalData); }
public static void Write(LogTypeEnum type, LogContextEnum context, string message, object additionalData) { // null is possible in design-time - do not invoke writer in order to prevent XAML preview errors _logWriter?.Invoke(type, context, message, additionalData); }
public static void Error(LogContextEnum context, string message, Exception exception) { Write(LogTypeEnum.Error, context, message, exception.GetLoggableObject()); }
public static void Error(LogContextEnum context, Exception exception) { Error(context, exception?.Message, exception); }
public void Error(LogContextEnum context, string message, Exception exception, [CallerMemberName] string callerName = null) { Write(LogTypeEnum.Error, context, message, exception.GetLoggableObject(), callerName); }
public void Error(LogContextEnum context, Exception exception, [CallerMemberName] string callerName = null) { Error(context, exception?.Message, exception); }
public void Error(LogContextEnum context, string message, object additionalData = null, [CallerMemberName] string callerName = null) { Write(LogTypeEnum.Error, context, message, additionalData, callerName); }