Пример #1
0
        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();
            }
        }
Пример #2
0
        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();
            }
        }