Handle empty configuration directory.
This commit is contained in:
@@ -96,7 +96,14 @@ following options:
|
|||||||
TimberWinR.ServiceHost.exe -configFile:myconfig.json -logLevel:Debug
|
TimberWinR.ServiceHost.exe -configFile:myconfig.json -logLevel:Debug
|
||||||
```
|
```
|
||||||
|
|
||||||
## Installation as a Windows Service
|
|
||||||
|
## Automatic Installation via Chocolatey
|
||||||
|
|
||||||
|
[TimbeWinR Chocolatey](https://chocolatey.org/packages/TimberWinR)
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Manual Installation as a Windows Service
|
||||||
TimberWinR uses [TopShelf](http://topshelf-project.com/) to install as a service, so all the documentation
|
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/)
|
for installing and configuring the service is show here [TopShelf Doc](http://docs.topshelf-project.com/en/latest/)
|
||||||
|
|
||||||
|
|||||||
@@ -57,9 +57,12 @@ namespace TimberWinR
|
|||||||
{
|
{
|
||||||
StartedOn = DateTime.UtcNow;
|
StartedOn = DateTime.UtcNow;
|
||||||
|
|
||||||
JsonConfig = jsonConfigFile;
|
var vfi = new FileInfo(jsonConfigFile);
|
||||||
|
|
||||||
|
JsonConfig = vfi.FullName;
|
||||||
LogfileDir = logfileDir;
|
LogfileDir = logfileDir;
|
||||||
|
|
||||||
|
|
||||||
numMessages = 0;
|
numMessages = 0;
|
||||||
numConnections = 0;
|
numConnections = 0;
|
||||||
|
|
||||||
@@ -111,74 +114,75 @@ namespace TimberWinR
|
|||||||
LogManager.GetCurrentClassLogger().Info("Logging Level: {0}", LogManager.GlobalThreshold);
|
LogManager.GetCurrentClassLogger().Info("Logging Level: {0}", LogManager.GlobalThreshold);
|
||||||
|
|
||||||
// Read the Configuration file
|
// Read the Configuration file
|
||||||
|
if (Config != null)
|
||||||
if (Config.RedisOutputs != null)
|
|
||||||
{
|
{
|
||||||
foreach (var ro in Config.RedisOutputs)
|
if (Config.RedisOutputs != null)
|
||||||
{
|
{
|
||||||
var redis = new RedisOutput(this, ro, cancelToken);
|
foreach (var ro in Config.RedisOutputs)
|
||||||
Outputs.Add(redis);
|
{
|
||||||
|
var redis = new RedisOutput(this, ro, cancelToken);
|
||||||
|
Outputs.Add(redis);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
if (Config.ElasticsearchOutputs != null)
|
||||||
}
|
|
||||||
if (Config.ElasticsearchOutputs != null)
|
|
||||||
{
|
|
||||||
foreach (var ro in Config.ElasticsearchOutputs)
|
|
||||||
{
|
{
|
||||||
var els = new ElasticsearchOutput(this, ro, cancelToken);
|
foreach (var ro in Config.ElasticsearchOutputs)
|
||||||
Outputs.Add(els);
|
{
|
||||||
|
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
Reference in New Issue
Block a user