Как записать события из нескольких приложений (источников) в один и тот же журнал событий?
Я создал пользовательский журнал событий и хотел бы, чтобы все мои приложения записывались в один и тот же журнал событий. (Вы сможете увидеть, как это происходит в вашем окно просмотра событий в журналах Windows.)
Точно так же у меня есть 2 службы, которые я хочу записать в один и тот же журнал событий. Я попытался сделать это, создав один журнал событий и передав разные имена источников из 2 созданных мной служб Windows. Но я нахожу только одну службу, пишущую в журнал, в то время как другая этого не делает.
Кроме того, когда я пытаюсь остановить службы, Служба 1 не останавливается и выдает ошибку.
Ошибка гласит "Windows не смогла остановить службу "имя службы" на локальном компьютере. Ошибка 1061: в настоящее время служба не может принимать управляющие сообщения."
Что я уже пробовал:
Ниже приведена библиотека классов, которую я создал для журнала событий.
public class EventLogger { private EventLog eventLog1 = new System.Diagnostics.EventLog(); public EventLogger(string logSource) { if (!System.Diagnostics.EventLog.SourceExists(logSource)) { System.Diagnostics.EventLog.CreateEventSource(logSource, "SampleLog"); } eventLog1.Source = logSource; eventLog1.Log = "SampleLog"; } public void WriteLog(string message) { eventLog1.WriteEntry(message); } }
Создан 1-й сервис Windows
public partial class Service1 : ServiceBase { private EventLogger.EventLogger eventLog; public Service1() { InitializeComponent(); eventLog = new EventLogger.EventLogger("WinService1"); } protected override void OnStart(string[] args) { try { eventLog.WriteLog("Service started in 1st"); } catch (Exception ex) { EventLog.WriteEntry(ex.ToString()); } } protected override void OnStop() { eventLog.WriteLog("Service stopped"); } }
Создал 2-ю службу windows, а также, как и выше.
public partial class Service2 : ServiceBase { private EventLogger.EventLogger eventLog; public Service2() { InitializeComponent(); eventLog = new EventLogger.EventLogger("WinService2"); } protected override void OnStart(string[] args) { try { eventLog.WriteLog("Service started in 2nd"); } catch (Exception ex) { EventLog.WriteEntry(ex.ToString()); } } protected override void OnStop() { eventLog.WriteLog("Service stopped"); } }
Service1, кажется, ничего не регистрирует, в то время как я вижу журналы для Service2. Возможно, я делаю здесь много неправильных вещей. Пожалуйста, помогите мне найти решение этой проблемы. Кроме того, если это может быть достигнуто с помощью log4Net, то решения в этом отношении также приветствуются. заранее спасибо.
Jochen Arndt
Пожалуйста, добавьте текст из сообщения об ошибке к вашему вопросу, используя зеленую ссылку "улучшить вопрос".
Многие здесь не будут открывать внешние (графические) ссылки, и ваши ссылки генерируют страницу ошибки 502 Bad Gateway.
AksPat
Удалил ссылки и обновил вопрос.