/// <summary> /// add a log entry to the system console /// </summary> /// <param name="logItem">log item to be added</param> public override void Log(ILogItem logItem) { CreateEventLogIfNotExisting( EventLogName, logItem.ProcessName ); EventLogEntryType logEntryType = EventLogEntryType.Information; switch (logItem.LogType) { case LogType.Error: case LogType.Fatal: logEntryType = EventLogEntryType.Error; break; case LogType.Warning: logEntryType = EventLogEntryType.Warning; break; case LogType.Info: case LogType.Debug: case LogType.NotDefined: logEntryType = EventLogEntryType.Information; break; } var msg = logItem.Text + Environment.NewLine; var cols = LogParameters.LogItemTextFormatter.GetColumns(); var p = logItem.GetType().GetProperties(); foreach (var c in cols) { if (c != nameof(ILogItem.Text)) { msg += Environment.NewLine; msg += c + " = " + p.Where(x => x.Name == c) .FirstOrDefault() ?.GetValue(logItem) ?.ToString(); } } var evlog = new EventLog { Log = EventLogName, Source = logItem.ProcessName }; /*using (var evlog = * new EventLog( * EventLogName, * Environment.MachineName, * logItem.ProcessName)) * {*/ evlog.WriteEntry( msg, logEntryType, (int)logItem.Index ); //} }