From a23354bc0a6aedee8a4f5de1929ea927a6679223 Mon Sep 17 00:00:00 2001 From: Eric Fontana Date: Wed, 3 Sep 2014 10:50:05 -0400 Subject: [PATCH] Handle empty configuration directory. --- README.md | 9 ++- TimberWinR/Manager.cs | 130 ++++++++++++++++++++++-------------------- 2 files changed, 75 insertions(+), 64 deletions(-) diff --git a/README.md b/README.md index 9ed56dc..2ac9a8d 100644 --- a/README.md +++ b/README.md @@ -96,7 +96,14 @@ following options: TimberWinR.ServiceHost.exe -configFile:myconfig.json -logLevel:Debug ``` -## Installation as a Windows Service + +## Automatic Installation via Chocolatey + +[TimbeWinR Chocolatey](https://chocolatey.org/packages/TimberWinR) + +![alt tag](https://raw.github.com/efontana/TimberWinR/master/chocolatey.png) + +## Manual Installation as a Windows Service TimberWinR uses [TopShelf](http://topshelf-project.com/) to install as a service, so all the documentation for installing and configuring the service is show here [TopShelf Doc](http://docs.topshelf-project.com/en/latest/) diff --git a/TimberWinR/Manager.cs b/TimberWinR/Manager.cs index 9a0d14e..7fb8080 100644 --- a/TimberWinR/Manager.cs +++ b/TimberWinR/Manager.cs @@ -57,9 +57,12 @@ namespace TimberWinR { StartedOn = DateTime.UtcNow; - JsonConfig = jsonConfigFile; + var vfi = new FileInfo(jsonConfigFile); + + JsonConfig = vfi.FullName; LogfileDir = logfileDir; + numMessages = 0; numConnections = 0; @@ -111,74 +114,75 @@ namespace TimberWinR LogManager.GetCurrentClassLogger().Info("Logging Level: {0}", LogManager.GlobalThreshold); // Read the Configuration file - - if (Config.RedisOutputs != null) + if (Config != null) { - foreach (var ro in Config.RedisOutputs) + if (Config.RedisOutputs != null) { - var redis = new RedisOutput(this, ro, cancelToken); - Outputs.Add(redis); + foreach (var ro in Config.RedisOutputs) + { + var redis = new RedisOutput(this, ro, cancelToken); + Outputs.Add(redis); + } + } - - } - if (Config.ElasticsearchOutputs != null) - { - foreach (var ro in Config.ElasticsearchOutputs) + if (Config.ElasticsearchOutputs != null) { - var els = new ElasticsearchOutput(this, ro, cancelToken); - Outputs.Add(els); + foreach (var ro in Config.ElasticsearchOutputs) + { + var els = new ElasticsearchOutput(this, ro, cancelToken); + Outputs.Add(els); + } + } + if (Config.StdoutOutputs != null) + { + foreach (var ro in Config.StdoutOutputs) + { + var stdout = new StdoutOutput(this, ro, cancelToken); + Outputs.Add(stdout); + } + } + + foreach (Parser.IISW3CLog iisw3cConfig in Config.IISW3C) + { + var elistner = new IISW3CInputListener(iisw3cConfig, cancelToken); + Listeners.Add(elistner); + foreach (var output in Outputs) + output.Connect(elistner); + } + + foreach (Parser.WindowsEvent eventConfig in Config.Events) + { + var elistner = new WindowsEvtInputListener(eventConfig, cancelToken); + Listeners.Add(elistner); + foreach (var output in Outputs) + output.Connect(elistner); + } + + foreach (var logConfig in Config.Logs) + { + var elistner = new LogsListener(logConfig, cancelToken); + Listeners.Add(elistner); + foreach (var output in Outputs) + output.Connect(elistner); + } + + foreach (var tcp in Config.Tcps) + { + var elistner = new TcpInputListener(cancelToken, tcp.Port); + Listeners.Add(elistner); + foreach (var output in Outputs) + output.Connect(elistner); + } + + + foreach (var tcp in Config.Stdins) + { + var elistner = new StdinListener(cancelToken); + Listeners.Add(elistner); + foreach (var output in Outputs) + output.Connect(elistner); } } - if (Config.StdoutOutputs != null) - { - foreach (var ro in Config.StdoutOutputs) - { - var stdout = new StdoutOutput(this, ro, cancelToken); - Outputs.Add(stdout); - } - } - - foreach (Parser.IISW3CLog iisw3cConfig in Config.IISW3C) - { - var elistner = new IISW3CInputListener(iisw3cConfig, cancelToken); - Listeners.Add(elistner); - foreach(var output in Outputs) - output.Connect(elistner); - } - - foreach (Parser.WindowsEvent eventConfig in Config.Events) - { - var elistner = new WindowsEvtInputListener(eventConfig, cancelToken); - Listeners.Add(elistner); - foreach (var output in Outputs) - output.Connect(elistner); - } - - foreach (var logConfig in Config.Logs) - { - var elistner = new LogsListener(logConfig, cancelToken); - Listeners.Add(elistner); - foreach (var output in Outputs) - output.Connect(elistner); - } - - foreach (var tcp in Config.Tcps) - { - var elistner = new TcpInputListener(cancelToken, tcp.Port); - Listeners.Add(elistner); - foreach (var output in Outputs) - output.Connect(elistner); - } - - - foreach (var tcp in Config.Stdins) - { - var elistner = new StdinListener(cancelToken); - Listeners.Add(elistner); - foreach (var output in Outputs) - output.Connect(elistner); - } - } ///