public void Log(string Message, int MessageId, LogMessageType MessageType = LogMessageType.Information, LogReceiver Receiver = LogReceiver.MessageBox | LogReceiver.Console, string Details = null) { string timeStamp = DateTime.Now.ToString(); if (Receiver.HasFlag(LogReceiver.Console)) { ListViewItem logItem = new ListViewItem(); string iconName = null; string levelName = null; _detailsList.Add(Details); switch (MessageType) { case LogMessageType.Exclamation: iconName = "exclamation"; levelName = Resources.Messages.Exclamation; break; case LogMessageType.Warning: iconName = "warning"; levelName = Resources.Messages.Warning; break; case LogMessageType.Success: iconName = "success"; levelName = Resources.Messages.Success; break; case LogMessageType.Failure: iconName = "failure"; levelName = Resources.Messages.Failure; break; default: iconName = "information"; levelName = Resources.Messages.Information; break; } logItem.Name = (_detailsList.Count - 1).ToString(); logItem.ImageKey = iconName; logItem.Text = levelName; logItem.SubItems.Add(Message); logItem.SubItems.Add(MessageId != 0 ? MessageId.ToString() : ""); logItem.SubItems.Add(timeStamp); LogList.BeginInvoke(new Action(() => { try { LogList.Items.Add(logItem); if (LogList.Items.Count > 1) { LogList.EnsureVisible(LogList.Items.Count - 1); } } catch (Exception) { } })); } if (Receiver.HasFlag(LogReceiver.StatusBar)) { Color foreColor = Color.Black; switch (MessageType) { case LogMessageType.Warning: foreColor = Color.Orange; break; case LogMessageType.Failure: case LogMessageType.Exclamation: foreColor = Color.Red; break; default: foreColor = Color.Black; break; } LogList.BeginInvoke(new Action(() => { StatusBarLabel.Text = Message; StatusBarLabel.ForeColor = foreColor; })); if (MessageType == LogMessageType.Information || MessageType == LogMessageType.Success) { } } if (Receiver.HasFlag(LogReceiver.MessageBox)) { MessageBoxIcon icon; string title; switch (MessageType) { case LogMessageType.Failure: icon = MessageBoxIcon.Error; title = Resources.Messages.Failure; break; case LogMessageType.Warning: icon = MessageBoxIcon.Warning; title = Resources.Messages.Warning; break; default: icon = MessageBoxIcon.Information; title = Resources.Messages.Information; break; } AlertBox.Show(Message, title, icon, Details); } }