private const int MONITORING_INTERVAL = 1000; // ms //--// static void Main(string[] args) { ILogger logger = SafeLogger.FromLogger(MonitorLogger.Instance); // try and open the GatewayService process string monitoringTarget = ConfigurationManager.AppSettings.Get("MonitoringTarget"); string monitoringExecutable = ConfigurationManager.AppSettings.Get("TargetExecutable"); string type = ConfigurationManager.AppSettings.Get("TargetType"); if (String.IsNullOrEmpty(monitoringTarget) || String.IsNullOrEmpty(monitoringExecutable)) { logger.LogError("Error in configuration, cannot start monitoring"); return; } if (String.IsNullOrEmpty(type)) { logger.LogInfo("No type specified, defaulting to 'process'"); type = AbstractMonitor.ProcessType; return; } AbstractMonitor monitor = null; switch (type) { case AbstractMonitor.ProcessType: monitor = new ProcessMonitor(monitoringExecutable, logger); break; case AbstractMonitor.ServiceType: monitor = new ServiceMonitor(monitoringTarget, logger); break; default: throw new ArgumentException(String.Format("Monitoring type {0} is unrecognized", type)); } monitor.MonitoringInterval = MONITORING_INTERVAL; if (monitor.Lock(monitoringTarget)) { monitor.Monitor(); } }
private const int MONITORING_INTERVAL = 1000; // ms //--// static void Main( string[] args ) { ILogger logger = SafeLogger.FromLogger( MonitorLogger.Instance ); // try and open the GatewayService process string monitoringTarget = ConfigurationManager.AppSettings.Get( "MonitoringTarget" ); string monitoringExecutable = ConfigurationManager.AppSettings.Get( "TargetExecutable" ); string type = ConfigurationManager.AppSettings.Get( "TargetType" ); if(String.IsNullOrEmpty( monitoringTarget ) || String.IsNullOrEmpty( monitoringExecutable )) { logger.LogError( "Error in configuration, cannot start monitoring" ); return; } if(String.IsNullOrEmpty( type )) { logger.LogInfo( "No type specified, defaulting to 'process'" ); type = AbstractMonitor.ProcessType; return; } AbstractMonitor monitor = null; switch(type) { case AbstractMonitor.ProcessType: monitor = new ProcessMonitor( monitoringExecutable, logger ); break; case AbstractMonitor.ServiceType: monitor = new ServiceMonitor( monitoringTarget, logger ); break; default: throw new ArgumentException( String.Format( "Monitoring type {0} is unrecognized", type ) ); } monitor.MonitoringInterval = MONITORING_INTERVAL; if(monitor.Lock( monitoringTarget )) { monitor.Monitor(); } }