From 2e1c003808818c2987f4a08d2d23ef12bc8cab6c Mon Sep 17 00:00:00 2001 From: Claudio Boggian Date: Mon, 24 Feb 2025 14:00:11 +0100 Subject: [PATCH] 1.0.0 - Release Issue and first commint for service --- .../(Setup) Log 4 Graylog.vdproj | 737 ++++++++++++++++++ console_log4graylog.sln | 26 + console_log4graylog/Log-4-Graylog.ico | Bin 0 -> 13722 bytes console_log4graylog/Model/SettingsModel.cs | 29 + console_log4graylog/Program.cs | 56 ++ console_log4graylog/Workers/MainWorker.cs | 134 ++++ console_log4graylog/appsettings.json | 12 + .../console_log4graylog.csproj | 39 + 8 files changed, 1033 insertions(+) create mode 100644 (Setup) Log 4 Graylog/(Setup) Log 4 Graylog.vdproj create mode 100644 console_log4graylog.sln create mode 100644 console_log4graylog/Log-4-Graylog.ico create mode 100644 console_log4graylog/Model/SettingsModel.cs create mode 100644 console_log4graylog/Program.cs create mode 100644 console_log4graylog/Workers/MainWorker.cs create mode 100644 console_log4graylog/appsettings.json create mode 100644 console_log4graylog/console_log4graylog.csproj diff --git a/(Setup) Log 4 Graylog/(Setup) Log 4 Graylog.vdproj b/(Setup) Log 4 Graylog/(Setup) Log 4 Graylog.vdproj new file mode 100644 index 0000000..b5087f2 --- /dev/null +++ b/(Setup) Log 4 Graylog/(Setup) Log 4 Graylog.vdproj @@ -0,0 +1,737 @@ +"DeployProject" +{ +"VSVersion" = "3:800" +"ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}" +"IsWebType" = "8:FALSE" +"ProjectName" = "8:(Setup) Log 4 Graylog" +"LanguageId" = "3:1040" +"CodePage" = "3:1252" +"UILanguageId" = "3:1040" +"SccProjectName" = "8:" +"SccLocalPath" = "8:" +"SccAuxPath" = "8:" +"SccProvider" = "8:" + "Hierarchy" + { + "Entry" + { + "MsmKey" = "8:_485C7AAA71924496B4CCA8F2B60EB371" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + } + "Configurations" + { + "Debug" + { + "DisplayName" = "8:Debug" + "IsDebugOnly" = "11:TRUE" + "IsReleaseOnly" = "11:FALSE" + "OutputFilename" = "8:Debug\\(Setup) Log 4 Graylog.msi" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:2" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:2" + } + "Release" + { + "DisplayName" = "8:Release" + "IsDebugOnly" = "11:FALSE" + "IsReleaseOnly" = "11:TRUE" + "OutputFilename" = "8:Release\\(Setup) Log 4 Graylog.msi" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:2" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:2" + "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" + { + "Enabled" = "11:TRUE" + "PromptEnabled" = "11:TRUE" + "PrerequisitesLocation" = "2:1" + "Url" = "8:" + "ComponentsUrl" = "8:" + "Items" + { + "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.NetCore.CoreRuntime.9.0.x64" + { + "Name" = "8:Runtime di .NET 9.0.1 (x64)" + "ProductCode" = "8:Microsoft.NetCore.CoreRuntime.9.0.x64" + } + } + } + } + } + "Deployable" + { + "CustomAction" + { + } + "DefaultFeature" + { + "Name" = "8:DefaultFeature" + "Title" = "8:" + "Description" = "8:" + } + "ExternalPersistence" + { + "LaunchCondition" + { + "{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_3218276E653746D7BBE9EAF6CFC78541" + { + "Name" = "8:.NET Core" + "Message" = "8:[VSDNETCOREMSG]" + "AllowLaterVersions" = "11:FALSE" + "InstallUrl" = "8:https://dotnet.microsoft.com/download/dotnet-core/[NetCoreVerMajorDotMinor]" + "IsNETCore" = "11:TRUE" + "Architecture" = "2:0" + "Runtime" = "2:0" + } + } + } + "File" + { + } + "FileType" + { + } + "Folder" + { + "{1525181F-901A-416C-8A58-119130FE478E}:_1D6B671D343A4228A354CA138B3705BD" + { + "Name" = "8:#1916" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:DesktopFolder" + "Folders" + { + } + } + "{1525181F-901A-416C-8A58-119130FE478E}:_5CBF406C9E44415E87BBF1E35E297CB9" + { + "Name" = "8:#1919" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:ProgramMenuFolder" + "Folders" + { + } + } + "{3C67513D-01DD-4637-8A68-80971EB9504F}:_9B600ABCFF494174A956D068E6CF1046" + { + "DefaultLocation" = "8:[ProgramFiles64Folder][Manufacturer]\\[ProductName]" + "Name" = "8:#1925" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:TARGETDIR" + "Folders" + { + } + } + } + "LaunchCondition" + { + } + "Locator" + { + } + "MsiBootstrapper" + { + "LangId" = "3:1040" + "RequiresElevation" = "11:FALSE" + } + "Product" + { + "Name" = "8:Microsoft Visual Studio" + "ProductName" = "8:Log 4 Graylog" + "ProductCode" = "8:{AE9265EA-F205-4212-9A4A-C0AFD73A2067}" + "PackageCode" = "8:{688D543B-C948-42B2-9DBB-282E9C06868B}" + "UpgradeCode" = "8:{7CE09C91-3C26-4C8E-BC66-003536E12481}" + "AspNetVersion" = "8:4.0.30319.0" + "RestartWWWService" = "11:FALSE" + "RemovePreviousVersions" = "11:FALSE" + "DetectNewerInstalledVersion" = "11:TRUE" + "InstallAllUsers" = "11:TRUE" + "ProductVersion" = "8:1.0.0" + "Manufacturer" = "8:PAL s.r.l." + "ARPHELPTELEPHONE" = "8:" + "ARPHELPLINK" = "8:" + "Title" = "8:Log 4 Graylog" + "Subject" = "8:" + "ARPCONTACT" = "8:PAL s.r.l." + "Keywords" = "8:" + "ARPCOMMENTS" = "8:" + "ARPURLINFOABOUT" = "8:" + "ARPPRODUCTICON" = "8:" + "ARPIconIndex" = "3:0" + "SearchPath" = "8:" + "UseSystemSearchPath" = "11:TRUE" + "TargetPlatform" = "3:1" + "PreBuildEvent" = "8:" + "PostBuildEvent" = "8:" + "RunPostBuildEvent" = "3:0" + } + "Registry" + { + "HKLM" + { + "Keys" + { + "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_C849480FC9A34F619AFB777AB8058B8C" + { + "Name" = "8:Software" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_FB25222941BB463D82BF83B432229C92" + { + "Name" = "8:[Manufacturer]" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + } + "Values" + { + } + } + } + "Values" + { + } + } + } + } + "HKCU" + { + "Keys" + { + "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_9EEDADFE7F2A4D62822F476817E753E7" + { + "Name" = "8:Software" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_D1B544522F6F40F79D4C3F18C2A19672" + { + "Name" = "8:[Manufacturer]" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + } + "Values" + { + } + } + } + "Values" + { + } + } + } + } + "HKCR" + { + "Keys" + { + } + } + "HKU" + { + "Keys" + { + } + } + "HKPU" + { + "Keys" + { + } + } + } + "Sequences" + { + } + "Shortcut" + { + "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_7FC43709505E4AD69D729799E1A9FD55" + { + "Name" = "8:Log 4 Graylog" + "Arguments" = "8:" + "Description" = "8:" + "ShowCmd" = "3:1" + "IconIndex" = "3:32512" + "Transitive" = "11:FALSE" + "Target" = "8:_485C7AAA71924496B4CCA8F2B60EB371" + "Folder" = "8:_5CBF406C9E44415E87BBF1E35E297CB9" + "WorkingFolder" = "8:_9B600ABCFF494174A956D068E6CF1046" + "Icon" = "8:_485C7AAA71924496B4CCA8F2B60EB371" + "Feature" = "8:" + } + "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_80AF6F01831346B88EC66109D1FF16DE" + { + "Name" = "8:Log 4 Graylog" + "Arguments" = "8:" + "Description" = "8:" + "ShowCmd" = "3:1" + "IconIndex" = "3:32512" + "Transitive" = "11:FALSE" + "Target" = "8:_485C7AAA71924496B4CCA8F2B60EB371" + "Folder" = "8:_1D6B671D343A4228A354CA138B3705BD" + "WorkingFolder" = "8:_9B600ABCFF494174A956D068E6CF1046" + "Icon" = "8:_485C7AAA71924496B4CCA8F2B60EB371" + "Feature" = "8:" + } + } + "UserInterface" + { + "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_058B586568DB4D688A57EEB398B06F16" + { + "UseDynamicProperties" = "11:FALSE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdUserInterface.wim" + } + "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_2958DD0206804228973334D60F46090F" + { + "UseDynamicProperties" = "11:FALSE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdBasicDialogs.wim" + } + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_299C1A671A154ABEB03A4F99264ECFC4" + { + "Name" = "8:#1900" + "Sequence" = "3:1" + "Attributes" = "3:1" + "Dialogs" + { + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_2AB4BE6BE0394937B91721966F4AF4CE" + { + "Sequence" = "3:100" + "DisplayName" = "8:Introduzione" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdWelcomeDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "CopyrightWarning" + { + "Name" = "8:CopyrightWarning" + "DisplayName" = "8:#1002" + "Description" = "8:#1102" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1202" + "DefaultValue" = "8:#1202" + "UsePlugInResources" = "11:TRUE" + } + "Welcome" + { + "Name" = "8:Welcome" + "DisplayName" = "8:#1003" + "Description" = "8:#1103" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1203" + "DefaultValue" = "8:#1203" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_8312C2E278644B3B9959E0383611BD80" + { + "Sequence" = "3:300" + "DisplayName" = "8:Conferma installazione" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdConfirmDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_835EB67B602745C6AC57FEF139B6EBA6" + { + "Sequence" = "3:200" + "DisplayName" = "8:Cartella di installazione" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdFolderDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "InstallAllUsersVisible" + { + "Name" = "8:InstallAllUsersVisible" + "DisplayName" = "8:#1059" + "Description" = "8:#1159" + "Type" = "3:5" + "ContextData" = "8:1;True=1;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:1" + "DefaultValue" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_52CD5D3816D44C4AB5E4DE3ADE8422B6" + { + "Name" = "8:#1901" + "Sequence" = "3:2" + "Attributes" = "3:2" + "Dialogs" + { + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_4582CF2C8F7C4F9EBD5B2DFFB404EE46" + { + "Sequence" = "3:100" + "DisplayName" = "8:Stato" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminProgressDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "ShowProgress" + { + "Name" = "8:ShowProgress" + "DisplayName" = "8:#1009" + "Description" = "8:#1109" + "Type" = "3:5" + "ContextData" = "8:1;True=1;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:1" + "DefaultValue" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_89D92D01F7024F92953EA8ED3504920E" + { + "Name" = "8:#1900" + "Sequence" = "3:2" + "Attributes" = "3:1" + "Dialogs" + { + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_07201741948546E091DA19D595D0AC1F" + { + "Sequence" = "3:300" + "DisplayName" = "8:Conferma installazione" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminConfirmDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_27A58A37735A4611A418465FE6341E17" + { + "Sequence" = "3:200" + "DisplayName" = "8:Cartella di installazione" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminFolderDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_97C214765AEB41119F2A55C8787E53BF" + { + "Sequence" = "3:100" + "DisplayName" = "8:Introduzione" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminWelcomeDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "CopyrightWarning" + { + "Name" = "8:CopyrightWarning" + "DisplayName" = "8:#1002" + "Description" = "8:#1102" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1202" + "DefaultValue" = "8:#1202" + "UsePlugInResources" = "11:TRUE" + } + "Welcome" + { + "Name" = "8:Welcome" + "DisplayName" = "8:#1003" + "Description" = "8:#1103" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1203" + "DefaultValue" = "8:#1203" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_AF12ACB8499241C6BBE2C4696C8A93B6" + { + "Name" = "8:#1901" + "Sequence" = "3:1" + "Attributes" = "3:2" + "Dialogs" + { + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_157D503726C940A697F874FDE5D4041B" + { + "Sequence" = "3:100" + "DisplayName" = "8:Stato" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdProgressDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "ShowProgress" + { + "Name" = "8:ShowProgress" + "DisplayName" = "8:#1009" + "Description" = "8:#1109" + "Type" = "3:5" + "ContextData" = "8:1;True=1;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:1" + "DefaultValue" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_BD0109A95F9E44CA8C691D410165FD50" + { + "Name" = "8:#1902" + "Sequence" = "3:1" + "Attributes" = "3:3" + "Dialogs" + { + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_E663914A875348A680F353D7ACECC165" + { + "Sequence" = "3:100" + "DisplayName" = "8:Installazione completata" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdFinishedDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "UpdateText" + { + "Name" = "8:UpdateText" + "DisplayName" = "8:#1058" + "Description" = "8:#1158" + "Type" = "3:15" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1258" + "DefaultValue" = "8:#1258" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_F50B01AC406E4488B5583ACCD2C784D9" + { + "Name" = "8:#1902" + "Sequence" = "3:2" + "Attributes" = "3:3" + "Dialogs" + { + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_11BF88F7B9624E03BC06BDA926B92840" + { + "Sequence" = "3:100" + "DisplayName" = "8:Installazione completata" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminFinishedDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + } + "MergeModule" + { + } + "ProjectOutput" + { + "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_485C7AAA71924496B4CCA8F2B60EB371" + { + "SourcePath" = "8:..\\console_log4graylog\\obj\\Release\\net9.0\\apphost.exe" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_9B600ABCFF494174A956D068E6CF1046" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:1" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:PublishItems" + "OutputProjectGuid" = "8:{D97CC845-BBC9-4683-9C99-C44050F3AD8B}" + "ShowKeyOutput" = "11:TRUE" + "ExcludeFilters" + { + } + } + } + } +} diff --git a/console_log4graylog.sln b/console_log4graylog.sln new file mode 100644 index 0000000..75c6617 --- /dev/null +++ b/console_log4graylog.sln @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.12.35707.178 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "console_log4graylog", "console_log4graylog\console_log4graylog.csproj", "{D97CC845-BBC9-4683-9C99-C44050F3AD8B}" +EndProject +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "(Setup) Log 4 Graylog", "(Setup) Log 4 Graylog\(Setup) Log 4 Graylog.vdproj", "{088E2DEB-3D70-42CA-A954-A81894611502}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D97CC845-BBC9-4683-9C99-C44050F3AD8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D97CC845-BBC9-4683-9C99-C44050F3AD8B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D97CC845-BBC9-4683-9C99-C44050F3AD8B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D97CC845-BBC9-4683-9C99-C44050F3AD8B}.Release|Any CPU.Build.0 = Release|Any CPU + {088E2DEB-3D70-42CA-A954-A81894611502}.Debug|Any CPU.ActiveCfg = Debug + {088E2DEB-3D70-42CA-A954-A81894611502}.Release|Any CPU.ActiveCfg = Release + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/console_log4graylog/Log-4-Graylog.ico b/console_log4graylog/Log-4-Graylog.ico new file mode 100644 index 0000000000000000000000000000000000000000..ec99eaa899ef8e08623451aab1dd4bd0f5716844 GIT binary patch literal 13722 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 + + Log.Logger = new LoggerConfiguration() + .Enrich.With(new PalLogger()) + .WriteTo.Graylog(new GraylogSinkOptions + { + HostnameOrAddress = graylogSettings.FQDN, + Port = graylogSettings.Port, + MinimumLogEventLevel = LogEventLevel.Warning, + Facility = graylogSettings.Facility + }).CreateLogger(); + + ServiceBase.Run(servicesToRun); + } + } + + public class PalLogger : ILogEventEnricher + { + public void Enrich(LogEvent logEvent, ILogEventPropertyFactory propertyFactory) + { + logEvent.AddPropertyIfAbsent(propertyFactory.CreateProperty("Username", Environment.UserName, true)); + } + } +} + diff --git a/console_log4graylog/Workers/MainWorker.cs b/console_log4graylog/Workers/MainWorker.cs new file mode 100644 index 0000000..b5109a1 --- /dev/null +++ b/console_log4graylog/Workers/MainWorker.cs @@ -0,0 +1,134 @@ +using console_log4graylog.Model; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.FileSystemGlobbing; +using Microsoft.Extensions.Hosting; +using Serilog; +using System.IO; +using System.Net; +using System.ServiceProcess; + +namespace console_log4graylog.Workers +{ + internal class MainWorker : ServiceBase + { + private SettingsModel Settings { get; set; } + private FileSystemWatcher watcher; + private Thread monitorThread; + private bool running = true; + + public MainWorker(IConfiguration _configuration) + { + Settings = new () + { + GeneralSettings = _configuration.GetSection("GeneralSettings").Get() + }; + } + + protected override void OnStart(string[] args) + { + Log2File("Start Log 4 Graylog"); + Log.Logger.Warning("▶️ Start Log 4 Graylog on " + Dns.GetHostName()); + + + monitorThread = new Thread(MonitorFolder); + monitorThread.Start(); + } + + protected override void OnStop() + { + Log2File("End Log 4 Graylog"); + Log.Logger.Error("⏹️ End Log 4 Graylog on " + Dns.GetHostName()); + + running = false; + watcher?.Dispose(); + } + + private void MonitorFolder() + { + while (running) + { + try + { + var latestFile = GetLatestLogFile(); + if (latestFile != null) + { + MonitorLogFile(latestFile); + } + Thread.Sleep(1000); + } + catch (Exception ex) + { + LogError("Service encountered an error: " + ex.Message); + } + } + } + + private FileInfo GetLatestLogFile() + { + DirectoryInfo dir = new DirectoryInfo(Settings.GeneralSettings.DirPath); + return dir.GetFiles(Settings.GeneralSettings.FileNamePattern) + .OrderByDescending(f => f.LastWriteTime) + .FirstOrDefault(); + } + + private void MonitorLogFile(FileInfo file) + { + try + { + Log2File("Attach to file: " + file.FullName); + Log.Logger.Warning("🗂️ Attach to file: " + file.FullName); + using (var fs = new FileStream(file.FullName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) + using (var reader = new StreamReader(fs)) + { + reader.BaseStream.Seek(0, SeekOrigin.End); + while (running) + { + string line = reader.ReadLine(); + while (line != null) + { + Log.Logger.Warning(line); + line = reader.ReadLine(); + } + if (GetLatestLogFile()?.FullName != file.FullName) + { + break; + } + Thread.Sleep(500); + } + } + } + catch (Exception ex) + { + LogError("Error monitoring file: " + ex.Message); + } + } + + + private void LogError(string errorMessage) + { + Log2File(errorMessage); + Log.Logger.Error("⚠️ " + errorMessage); + + throw new Exception(errorMessage); + } + + private void Log2File(string message) + { + if (!Directory.Exists(Path.GetDirectoryName(Settings.GeneralSettings.LogPath))) + { + Directory.CreateDirectory(Path.GetDirectoryName(Settings.GeneralSettings.LogPath)); + } + + if (!File.Exists(Settings.GeneralSettings.LogPath)) + { + using (FileStream fs = File.Create(Settings.GeneralSettings.LogPath)) + { + byte[] info = new System.Text.UTF8Encoding(true).GetBytes(""); + fs.Write(info, 0, info.Length); + } + } + + File.AppendAllText(Settings.GeneralSettings.LogPath, DateTime.Now + " - " + message + "\n"); + } + } +} diff --git a/console_log4graylog/appsettings.json b/console_log4graylog/appsettings.json new file mode 100644 index 0000000..67f14c3 --- /dev/null +++ b/console_log4graylog/appsettings.json @@ -0,0 +1,12 @@ +{ + "GraylogSettings" : { + "FQDN" : "graylog.local", + "Port" : 12202, + "Facility" : "ConsoleApp" + }, + "GeneralSettings" : { + "DirPath" : "C:\\Logs", + "FileNamePattern": "*.log", + "LogPath": "C:\\Logs\\l4g_debug.log" + } +} diff --git a/console_log4graylog/console_log4graylog.csproj b/console_log4graylog/console_log4graylog.csproj new file mode 100644 index 0000000..889fded --- /dev/null +++ b/console_log4graylog/console_log4graylog.csproj @@ -0,0 +1,39 @@ + + + + Exe + net9.0 + enable + enable + Log-4-Graylog.ico + + + + none + + + + none + + + + + Always + + + + + + + + + + + + + + Always + + + +