예제 #1
0
        public Kernel Start()
        {
            LogMonitorConfiguration configuration = LogMonitorConfiguration.Instance;

            return(new Kernel(
                       this.processors,
                       configuration.Watch.Cast <IWatchConfiguration>(),
                       this.outputFilter));
        }
예제 #2
0
        public ConfigurationAppStarter()
        {
            var processorsFactory = new ProcessorFactory();

            LogMonitorConfiguration configuration = LogMonitorConfiguration.Instance;

            this.processors = new List <IProcessor>();

            // Set to right "context"
            Environment.CurrentDirectory = Path.GetDirectoryName(typeof(Kernel).Assembly.Location);

            foreach (ParserElement parser in configuration.Parser)
            {
                processors.Add(processorsFactory.Create(parser.ScriptPath, parser.Pattern));
            }

            var outputFactory = new OutputFactory(
                GraphiteConfiguration.Instance == null ? null : GraphiteConfiguration.Instance.Graphite,
                GraphiteConfiguration.Instance == null ? null : GraphiteConfiguration.Instance.StatsD);

            this.outputFilter = outputFactory.CreateFilter(
                configuration.Output.Cast <IOutputConfiguration>());
        }