private void ServiceHelper_ServiceStarted(object sender, EventArgs e) { ServiceHelperAppender serviceHelperAppender; RollingFileAppender fileAppender; ServiceProcess process; // Set current working directory to fix relative paths Directory.SetCurrentDirectory(FilePath.GetAbsolutePath("")); // Set up logging serviceHelperAppender = new ServiceHelperAppender(m_serviceHelper); fileAppender = new RollingFileAppender(); fileAppender.StaticLogFileName = false; fileAppender.AppendToFile = true; fileAppender.RollingStyle = RollingFileAppender.RollingMode.Composite; fileAppender.MaxSizeRollBackups = 10; fileAppender.PreserveLogFileNameExtension = true; fileAppender.MaximumFileSize = "1MB"; fileAppender.Layout = new PatternLayout("%date [%thread] %-5level %logger - %message%newline"); try { if (!Directory.Exists("Debug")) { Directory.CreateDirectory("Debug"); } fileAppender.File = @"Debug\openEAS.log"; } catch (Exception ex) { fileAppender.File = "openEAS.log"; m_serviceHelper.ErrorLogger.Log(ex); } fileAppender.ActivateOptions(); BasicConfigurator.Configure(serviceHelperAppender, fileAppender); // Set up the analysis engine m_extensibleDisturbanceAnalysisEngine = new SandBoxEngine(); AppDomain.CurrentDomain.AssemblyResolve += m_extensibleDisturbanceAnalysisEngine.AssemblyResolveHandler; // Set up heartbeat and client request handlers m_serviceHelper.AddScheduledProcess(ProcessLatestData, "ProcessLatestData", "* * * * *"); m_serviceHelper.AddScheduledProcess(ServiceHeartbeatHandler, "ServiceHeartbeat", "* * * * *"); m_serviceHelper.ClientRequestHandlers.Add(new ClientRequestHandler("ReloadSystemSettings", "Reloads system settings from the database", ReloadSystemSettingsRequestHandler)); m_serviceHelper.ClientRequestHandlers.Add(new ClientRequestHandler("MsgServiceMonitors", "Sends a message to all service monitors", MsgServiceMonitorsRequestHandler)); // Set up adapter loader to load service monitors m_serviceMonitors = new ServiceMonitors(); m_serviceMonitors.AdapterCreated += ServiceMonitors_AdapterCreated; m_serviceMonitors.AdapterLoaded += ServiceMonitors_AdapterLoaded; m_serviceMonitors.AdapterUnloaded += ServiceMonitors_AdapterUnloaded; m_serviceHelper.UpdatedStatus += UpdatedStatusHandler; m_serviceMonitors.Initialize(); // Process latest data at startup process = m_serviceHelper.FindProcess("ProcessLatestData"); if ((object)process != null) { process.Start(); } bool webUI = false; while (!webUI) { webUI = TryStartWebUI(); } }
private void ServiceHelper_ServiceStarted(object sender, EventArgs e) { ServiceHelperAppender serviceHelperAppender; RollingFileAppender fileAppender; ServiceProcess process; // Set current working directory to fix relative paths Directory.SetCurrentDirectory(FilePath.GetAbsolutePath("")); // Set up logging serviceHelperAppender = new ServiceHelperAppender(m_serviceHelper); fileAppender = new RollingFileAppender(); fileAppender.StaticLogFileName = false; fileAppender.AppendToFile = true; fileAppender.RollingStyle = RollingFileAppender.RollingMode.Composite; fileAppender.MaxSizeRollBackups = 10; fileAppender.PreserveLogFileNameExtension = true; fileAppender.MaximumFileSize = "1MB"; fileAppender.Layout = new PatternLayout("%date [%thread] %-5level %logger - %message%newline"); try { if (!Directory.Exists("Debug")) Directory.CreateDirectory("Debug"); fileAppender.File = @"Debug\openEAS.log"; } catch (Exception ex) { fileAppender.File = "openEAS.log"; m_serviceHelper.ErrorLogger.Log(ex); } fileAppender.ActivateOptions(); BasicConfigurator.Configure(serviceHelperAppender, fileAppender); // Set up heartbeat and client request handlers m_serviceHelper.AddScheduledProcess(ProcessLatestData, "ProcessLatestData", "* * * * *"); m_serviceHelper.AddScheduledProcess(ServiceHeartbeatHandler, "ServiceHeartbeat", "* * * * *"); m_serviceHelper.ClientRequestHandlers.Add(new ClientRequestHandler("ReloadSystemSettings", "Reloads system settings from the database", ReloadSystemSettingsRequestHandler)); m_serviceHelper.ClientRequestHandlers.Add(new ClientRequestHandler("MsgServiceMonitors", "Sends a message to all service monitors", MsgServiceMonitorsRequestHandler)); // Set up adapter loader to load service monitors m_serviceMonitors = new ServiceMonitors(); m_serviceMonitors.AdapterCreated += ServiceMonitors_AdapterCreated; m_serviceMonitors.AdapterLoaded += ServiceMonitors_AdapterLoaded; m_serviceMonitors.AdapterUnloaded += ServiceMonitors_AdapterUnloaded; m_serviceMonitors.Initialize(); // Set up the analysis engine m_extensibleDisturbanceAnalysisEngine = new SandBoxEngine(); // Process latest data at startup process = m_serviceHelper.FindProcess("ProcessLatestData"); if ((object)process != null) process.Start(); }