protected override void Write(LogEventInfo logEvent) { if (logEvent == null) { throw new ArgumentNullException(nameof(logEvent)); } var timestamp = logEvent.TimeStamp; var level = NLogUtils.ConvertLevel(logEvent.Level); var message = logEvent.FormattedMessage; var exception = logEvent.Exception; var processId = Process.GetCurrentProcess().Id; var threadId = Thread.CurrentThread.ManagedThreadId; var userName = LogEvent.CurrentUserName; var machineName = Environment.MachineName; Dictionary <string, object> properties = null; if (logEvent.HasProperties) { properties = new Dictionary <string, object>(); foreach (var logEventProperty in logEvent.Properties) { var propertyName = logEventProperty.Key.ToString(); properties[propertyName] = logEventProperty.Value; } } if (Attributes.Count > 0) { properties ??= new Dictionary <string, object>(); foreach (var attribute in Attributes) { var propertyName = attribute.Name; properties[propertyName] = attribute.Layout.Render(logEvent); } } var coreLogEvent = new LogEvent(timestamp, level, message, exception, processId, threadId, userName, machineName, properties); Transport.Send(coreLogEvent); }
public void Log <TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func <TState, Exception, string> formatter) { if (formatter == null) { throw new ArgumentNullException(nameof(formatter)); } var nlogLevel = NLogUtils.ConvertLevel(logLevel); var message = formatter(state, exception); if (exception != null) { InternalLogger.Log(exception, nlogLevel, message); } else { InternalLogger.Log(nlogLevel, message); } }