From af7e240c3d319a2ad198b4cbaa8d0d8c6f4a7ff3 Mon Sep 17 00:00:00 2001 From: Eric Fontana Date: Fri, 1 Aug 2014 08:27:05 -0400 Subject: [PATCH] Added quicstart guide. Updated to 1.0.0.2 RapidRegex --- Packages.dgml | 34 ++++++++++++++++++ README.md | 24 +++++++++++++ .../TimberWinR.ServiceHost.1.0.0.0.nupkg | Bin 0 -> 7331 bytes .../TimberWinR.ServiceHost.csproj | 10 ++++-- .../TimberWinR.ServiceHost.nuspec | 23 ++++++++++++ TimberWinR.ServiceHost/default.json | 30 ++++++++++++++++ TimberWinR.ServiceHost/packages.config | 2 +- TimberWinR/Manager.cs | 10 +++--- TimberWinR/TimberWinR.csproj | 5 ++- TimberWinR/TimberWinR.nuspec | 1 + TimberWinR/packages.config | 2 +- .../RapidRegex.Core.1.0.0.0.nupkg | Bin 7735 -> 0 bytes .../RapidRegex.Core.1.0.0.2.nupkg | Bin 0 -> 11353 bytes .../lib/net40/RapidRegex.Core.dll | Bin 14 files changed, 129 insertions(+), 12 deletions(-) create mode 100644 Packages.dgml create mode 100644 TimberWinR.ServiceHost/TimberWinR.ServiceHost.1.0.0.0.nupkg create mode 100644 TimberWinR.ServiceHost/TimberWinR.ServiceHost.nuspec create mode 100644 TimberWinR.ServiceHost/default.json delete mode 100644 packages/RapidRegex.Core.1.0.0.0/RapidRegex.Core.1.0.0.0.nupkg create mode 100644 packages/RapidRegex.Core.1.0.0.2/RapidRegex.Core.1.0.0.2.nupkg rename packages/{RapidRegex.Core.1.0.0.0 => RapidRegex.Core.1.0.0.2}/lib/net40/RapidRegex.Core.dll (100%) diff --git a/Packages.dgml b/Packages.dgml new file mode 100644 index 0000000..504c19f --- /dev/null +++ b/Packages.dgml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/README.md b/README.md index 191db3a..b7988e3 100644 --- a/README.md +++ b/README.md @@ -128,4 +128,28 @@ Options: Default is -configFile:default.json ``` +### Quickstart Guide +If you really just want to try it out, grab the binary distribution, extract the .zip file +into a directory, e.g. C:\TimberWinR + +Grab the [JSON example file](https://github.com/efontana/TimberWinR/blob/master/TimberWinR.ServiceHost/default.json) and place it into C:\TimberWinR\default.json. +Edit the default.json file and change the Redis instance to match yours, replace 'tstlexiceapp006.vistaprint.svc' with the IP or DNS name +of the machine running redis. Fire up the collector, enable the verbose debugging to see some Windows Events. + +``` +TimberWinR.ServiceHost.Exe -configFile:default.json -logLevel:Debug +``` + +You should see + + +To run it as a service +``` +TimberWinR.ServiceHost.exe install --autostart +TimberWinR.ServiceHost.exe start +``` + + + + diff --git a/TimberWinR.ServiceHost/TimberWinR.ServiceHost.1.0.0.0.nupkg b/TimberWinR.ServiceHost/TimberWinR.ServiceHost.1.0.0.0.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..ad75add58019f34ce086d75c5e7e1a0cff628b0e GIT binary patch literal 7331 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 literal 0 HcmV?d00001 diff --git a/TimberWinR.ServiceHost/TimberWinR.ServiceHost.csproj b/TimberWinR.ServiceHost/TimberWinR.ServiceHost.csproj index f568176..b3c5b3c 100644 --- a/TimberWinR.ServiceHost/TimberWinR.ServiceHost.csproj +++ b/TimberWinR.ServiceHost/TimberWinR.ServiceHost.csproj @@ -33,7 +33,7 @@ - ..\packages\RapidRegex.Core.1.0.0.0\lib\net40\RapidRegex.Core.dll + ..\packages\RapidRegex.Core.1.0.0.2\lib\net40\RapidRegex.Core.dll @@ -56,7 +56,13 @@ PreserveNewest - + + PreserveNewest + + + Designer + + diff --git a/TimberWinR.ServiceHost/TimberWinR.ServiceHost.nuspec b/TimberWinR.ServiceHost/TimberWinR.ServiceHost.nuspec new file mode 100644 index 0000000..6ed3d0a --- /dev/null +++ b/TimberWinR.ServiceHost/TimberWinR.ServiceHost.nuspec @@ -0,0 +1,23 @@ + + + + TimberWinR.ServiceHost + $version$ + TimberWinR.ServiceHost + efontana + efontana + http://LICENSE_URL_HERE_OR_DELETE_THIS_LINE + http://PROJECT_URL_HERE_OR_DELETE_THIS_LINE + http://ICON_URL_HERE_OR_DELETE_THIS_LINE + false + TimberWinR Service + Summary of changes made in this release of the package. + Copyright 2014 + Tag1 Tag2 + + + + + + + \ No newline at end of file diff --git a/TimberWinR.ServiceHost/default.json b/TimberWinR.ServiceHost/default.json new file mode 100644 index 0000000..9142eea --- /dev/null +++ b/TimberWinR.ServiceHost/default.json @@ -0,0 +1,30 @@ +{ + "TimberWinR": { + "Inputs": { + "WindowsEvents": [ + { + "source": "System,Application", + "binaryFormat": "PRINT", + "resolveSIDS": true + } + ], + "Tcp": [ + { + "_comment": "Output from NLog", + "port": 5140 + } + ] + }, + "Outputs": { + "Redis": [ + { + "_comment": "Change the host to your Redis instance", + "port": 6379, + "host": [ + "tstlexiceapp006.vistaprint.svc" + ] + } + ] + } + } +} diff --git a/TimberWinR.ServiceHost/packages.config b/TimberWinR.ServiceHost/packages.config index 13a6181..d59c88d 100644 --- a/TimberWinR.ServiceHost/packages.config +++ b/TimberWinR.ServiceHost/packages.config @@ -1,5 +1,5 @@  - + \ No newline at end of file diff --git a/TimberWinR/Manager.cs b/TimberWinR/Manager.cs index 83044fe..93c70a0 100644 --- a/TimberWinR/Manager.cs +++ b/TimberWinR/Manager.cs @@ -55,15 +55,15 @@ namespace TimberWinR LogManager.GlobalThreshold = LogLevel.FromString(logLevel); - FileInfo fi = new FileInfo(jsonConfigFile); - + var fi = new FileInfo(jsonConfigFile); + if (!fi.Exists) + throw new FileNotFoundException("Missing config file", jsonConfigFile); + LogManager.GetCurrentClassLogger().Info("Initialized, Reading Config: {0}", fi.FullName); LogManager.GetCurrentClassLogger().Info("Log Directory {0}", logfileDir); LogManager.GetCurrentClassLogger().Info("Logging Level: {0}", LogManager.GlobalThreshold); - if (!fi.Exists) - throw new FileNotFoundException("Missing config file", jsonConfigFile); - + // Read the Configuration file Config = Configuration.FromFile(jsonConfigFile); diff --git a/TimberWinR/TimberWinR.csproj b/TimberWinR/TimberWinR.csproj index de47cf5..2f695da 100644 --- a/TimberWinR/TimberWinR.csproj +++ b/TimberWinR/TimberWinR.csproj @@ -46,9 +46,8 @@ ..\packages\NLog.3.1.0.0\lib\net40\NLog.dll - - False - ..\packages\RapidRegex.Core.1.0.0.0\lib\net40\RapidRegex.Core.dll + + ..\packages\RapidRegex.Core.1.0.0.2\lib\net40\RapidRegex.Core.dll diff --git a/TimberWinR/TimberWinR.nuspec b/TimberWinR/TimberWinR.nuspec index 61a5bdc..f420f15 100644 --- a/TimberWinR/TimberWinR.nuspec +++ b/TimberWinR/TimberWinR.nuspec @@ -14,6 +14,7 @@ + diff --git a/TimberWinR/packages.config b/TimberWinR/packages.config index 3c8f056..86e6a79 100644 --- a/TimberWinR/packages.config +++ b/TimberWinR/packages.config @@ -3,5 +3,5 @@ - + \ No newline at end of file diff --git a/packages/RapidRegex.Core.1.0.0.0/RapidRegex.Core.1.0.0.0.nupkg b/packages/RapidRegex.Core.1.0.0.0/RapidRegex.Core.1.0.0.0.nupkg deleted file mode 100644 index 923f7e8dfe393b9b2dfc4aba3a28f8888fa5d99a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7735 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 X_L!*w-Qj&PI_ho@4x*InwN(8 diff --git a/packages/RapidRegex.Core.1.0.0.2/RapidRegex.Core.1.0.0.2.nupkg b/packages/RapidRegex.Core.1.0.0.2/RapidRegex.Core.1.0.0.2.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..73a2b4a1cb30c5d55ca1869cb771be234950b2ad GIT binary patch literal 11353 zcmb`N1yoes`tU)dyFmm7q+hd zyG2-m9L>RY=2j384;L3d=q{Q+ZP5SSCP3TM5%Paobg%&<;LdQU3lI!<_}$oDTzBTU zxjib zaq~O|oAYoBf+4)zT!O#y1O099#MSQ#hXm;!62`B>sbt7T!0w8s=pGUh*ggHdi88s zuvRbnBV?YU+oSH)*qBdk!h|mU^XWjjWDWUV{S?jmrB~XaV(Md5q+;j%Iz6XXEqrQ+ z9Un^1uacVr?!B|kg(i1U5Q{Nc13ruQRM;$|1={czI+cuz=PU^64qC`V16yN*w58-Yzg|?GaovzdNFN|EjUz+b8}a zD)AFBiIvLGqNr>K3_lGmZF)akrtei6YZ$vPTjOR~k~sBxvTi$+eS>myFl{z&xGy-X zpphJ=0(xOMT?Fy@1$3W5MFlgQ_ZB0cDjc}3d54MoFw7Trd=P#-2zVTm*H6H{jQNzh zvJ!c0d0#q@g`L)IXbsqXydS%=K9Aui7c+8C^#IqU?;t+3A@=Dustc|#q>{>SlGLw) zBZq^$$Mo;JC&rDU#7KA7)e1;R)OWjQZ({+1L0ovb{;xK$w736no4D9_sWm}}6U&&|G^)zFO z+J`~tv?y1zZu#WH%?H2h#>->x$0Ez4ADfYBkoLZxZr34aq3;VJ?_TS7z?V<_sRH~- zeINse!)dxFxyc9ln*2wyGMsGsHQK|R5EHE^CB^QPq>3k+tQ$g{bE72FR-37m=z@- z+7bSJjr=NeKnS@fRV;d?PY@axcgdR#vP!ciGaR36XrMj)Mjc^O+N1ym3^Fsc6A}Qz zWX+i?U29SV_8{)hzn&a&|-|o;qu&XBzJt;cV?Ly*RYDL=|}^CUuHlX-eE&M zIK*O0#V|z2VT?7e%NO6NiX*CFl-T&blR%LGXLZN3aWs_ z&dI~pcX}SR14k7ldY#`$jBU?|xyG;|L*QL_VX%gHi<5 z73=vv6F>OT7VpzhyC;k+@YqFhBHLvCjH{G!7SRnBQT8zslelkKLBgnKv%G#o4(_^K z3yX2CN)D;&ehCz!fskJC6^+vxV_y5 zhXZb!w+-hd%IDZ;b>R_;DyFAox2mR1#KglyZ5+Gb`dMYV$9#*OC=1rzqXpE8T?5~} z;rQ}{RjK(|jK1S#N50wf0+o-n?kf%GwPhJHRBm%c*`-rYy%$cO5AbR1c^xT=WLW53 z`d)}_tp~*Bw2aFUzr08fOzqlz`&}V@YqEUY%U;?dKVXORbH=CZeibSaI!W2rkGHyv zU=CsYF0la=;KZD5u4Qh(1`+Q8cW(C+=NI5`>_T?ng{?5#{E zW_F(BYsyS~^jD}8a$0J`f!JZF@+qm=KLX#Yjn@N+KaP88ad1-yL ziSDnG>t^wGzv*cJvaslLW;IfkL9_cF=A38ig<876Kz%N!$D0wtTVvCij95bL6s}jwg zGPV;c*SNdAEuOrdwMl{lxy21Nb-+?pD@dB$TUhDeX)tfhSu?Vdm)BZbRzQ3xbHDgT zQW<(eAQrBlGAE>VrI} z#_lm*7gvU%!0uXmTDyXh;y~Fp?YzooVQRid4y~X0k|*Rh6b2IIt%wv4NTQd|!YIgz zs=x{=rkf1*!tqM|QBg7M>kJpuuyphcY4D>WLPkHwdR7-(Hy@v^glK`_{w(F(&aQ-_ zsqS?xEGnUD=1iu|(*(}-v!0d9;q{Ns)aa)PPUuGMC<>x2Or}m6Wq@NW@61YwK~?E` zC(8M-g_gCgrS=Om7apN>$&$v(+s@$b^@{f3+-N#aHf~jn6ZdwK8TVF3-eaoJ;&qR% z=$j3L2PZ|vGr79{HBC#M@f!w2xXV$EHrbz5FID-}Y3JFk@F?{@U@W@SK)xgdU2HNL@KEXIed% zoMwS+sPjl7IcC*iL_aVUB!$x^i{pBuggabkwv4751N?^jJH`0p|LaliQU`+GnL7p6xvsBbF4#Kepnb= zDDuo|*sfMRZtks}5JA^%zo%MY^HC`ORYvBkG}T-pB~@VZPW4QtHkp2VO!(3?+q

9)r` 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 TD%wvm)Vm|>t`(cue%}2bHz