├── .azure-pipelines
└── templates
│ ├── docs
│ ├── build-job.yaml
│ └── build.yaml
│ ├── log4tc
│ ├── build-job.yaml
│ ├── build-linux.yaml
│ ├── build-windows.yaml
│ └── test.yaml
│ └── tclibrary
│ ├── build-job.yaml
│ └── build.yaml
├── .editorconfig
├── .gitattributes
├── .github
└── release.yml
├── .gitignore
├── CONTRIBUTING.md
├── LICENSE
├── azure-pipelines-ci.yml
├── azure-pipelines-release.yml
├── docs
├── .gitignore
├── Changelog.md
├── DocFxBuild.targets
├── Logo.svg
├── api
│ └── toc.yml
├── assets
│ ├── architektur.png
│ ├── showcase.png
│ └── showcase.svg
├── docfx.csproj
├── docfx.json
├── dotnet-tools.json
├── favicon.ico
├── gettingstarted
│ ├── add_log4tc_lib.md
│ ├── argument_logging.md
│ ├── assets
│ │ ├── Architektur.graphml
│ │ ├── architektur.png
│ │ ├── chronograf_log4tc_dashboard.png
│ │ ├── log1.png
│ │ ├── log2.png
│ │ ├── log3.png
│ │ ├── log4.png
│ │ ├── log4TC.json
│ │ ├── log4view.png
│ │ ├── log4view_config.png
│ │ ├── log4view_options.png
│ │ ├── log5.png
│ │ ├── log_folder.png
│ │ ├── programdata.png
│ │ ├── references.png
│ │ └── solution.png
│ ├── context_usage.md
│ ├── create_twincat_project.md
│ ├── intro.md
│ ├── logger_usage.md
│ ├── simple_logging.md
│ ├── toc.yml
│ ├── tools_log4view.md
│ └── write_structured_values.md
├── index.md
├── internal
│ ├── assets
│ │ ├── Architektur.graphml
│ │ ├── Kontextdiagramm.graphml
│ │ ├── Kontextdiagramm.png
│ │ ├── Lizenz-TAN-Generierung.graphml
│ │ ├── Systemkomponenten.graphml
│ │ └── Systemkomponenten.png
│ ├── description.md
│ ├── details.md
│ ├── intro.md
│ ├── licensing.md
│ ├── links.md
│ ├── project_poster.md
│ ├── setup.md
│ ├── sps.md
│ └── toc.yml
├── print
│ ├── FlyerA4 - Log4TC.docx
│ ├── FlyerA4 - Log4TC.pdf
│ ├── Logo.svg
│ ├── LogoFinal.svg
│ ├── LogoFinalBackground.svg
│ ├── LogoFinalClean.svg
│ ├── LogoFinalGitHub (1280x640).png
│ ├── Product_Sheet.docx
│ ├── log4tc_white_logo.svg
│ └── mbc_log4tc_qr.png
├── reference
│ ├── assets
│ │ ├── setup_endwitherror.png
│ │ ├── setup_service_links.png
│ │ ├── setup_successfull.png
│ │ ├── stup_log4View_networkstream.png
│ │ └── vscode_log_viewer.png
│ ├── graylog_output.md
│ ├── index.md
│ ├── influx_output.md
│ ├── installation.md
│ ├── loglevel.md
│ ├── nlog_output.md
│ ├── placeholder.md
│ ├── service_config.md
│ ├── sql_output.md
│ ├── toc.yml
│ └── tools.md
├── template
│ └── public
│ │ ├── main.css
│ │ └── main.js
└── toc.yml
├── library
├── mbc_Log4TC.library
└── mbc_Log4TC_v0.2.1.library
├── readme.md
└── source
├── AdsRouterConsoleApp
├── .dockerignore
├── .gitignore
├── .vscode
│ ├── launch.json
│ └── tasks.json
├── AdsRouterConsoleApp.sln
├── Directory.Build.props
├── Dockerfile
├── README.md
├── docs
│ ├── run-as-docker-container.md
│ └── run-beneath-TwinCATRouter.md
└── src
│ ├── AdsRouterConsoleApp.csproj
│ ├── Program.cs
│ ├── Worker.cs
│ ├── appSettings.json
│ ├── appsettingsSample.json
│ ├── settings-bridged-network.env
│ └── settings-host-network.env
├── Log4Tc
├── .dockerignore
├── .editorconfig
├── .gitignore
├── Directory.Build.props
├── Log4Tc.sln
├── Mbc.CodeAnalysis.ruleset
├── Mbc.Log4Tc.Dispatcher.Test
│ ├── Filter
│ │ ├── FilterConfigurationFactoryTest.cs
│ │ ├── SimpleLogFilterTest.cs
│ │ └── assets
│ │ │ ├── EmptyFilter.json
│ │ │ ├── MultipleSimpleFilter.json
│ │ │ ├── SingleSimpleFilter.json
│ │ │ └── StringFilter.json
│ └── Mbc.Log4Tc.Dispatcher.Test.csproj
├── Mbc.Log4Tc.Dispatcher
│ ├── AssemblyProperties.cs
│ ├── Filter
│ │ ├── AllMatchFilter.cs
│ │ ├── FilterConfigurationFactory.cs
│ │ ├── ILogFilter.cs
│ │ ├── NoneMatchFilter.cs
│ │ ├── OrFilter.cs
│ │ └── SimpleLogFilter.cs
│ ├── LogDispatcherExtensions.cs
│ ├── LogDispatcherService.cs
│ ├── Mbc.Log4Tc.Dispatcher.csproj
│ └── OutputDispatch.cs
├── Mbc.Log4Tc.Model.Test
│ ├── LogEntryTest.cs
│ ├── Mbc.Log4Tc.Model.Test.csproj
│ └── Message
│ │ └── MessageFormatterTest.cs
├── Mbc.Log4Tc.Model
│ ├── AssemblyProperties.cs
│ ├── LogEntry.cs
│ ├── LogLevel.cs
│ ├── Mbc.Log4Tc.Model.csproj
│ ├── Message
│ │ ├── MessageFormatter.cs
│ │ ├── MessageHoleToken.cs
│ │ ├── MessageTemplateToken.cs
│ │ └── MessageTextToken.cs
│ └── OsPaths.cs
├── Mbc.Log4Tc.Output.Graylog.Test
│ ├── GelfDataTest.cs
│ └── Mbc.Log4Tc.Output.Graylog.Test.csproj
├── Mbc.Log4Tc.Output.Graylog
│ ├── AssemblyProperties.cs
│ ├── GelfData.cs
│ ├── GraylogLog4TcOutputFactory.cs
│ ├── GraylogLog4TcOutputPlugin.cs
│ ├── GraylogOutput.cs
│ ├── GraylogOutputSettings.cs
│ └── Mbc.Log4Tc.Output.Graylog.csproj
├── Mbc.Log4Tc.Output.InfluxDb.Test
│ ├── Mbc.Log4Tc.Output.InfluxDb.Test.csproj
│ └── SysLogPointFactoryTest.cs
├── Mbc.Log4Tc.Output.InfluxDb
│ ├── ArgumentPointFactory.cs
│ ├── AssemblyProperties.cs
│ ├── BasePointFactory.cs
│ ├── IInfluxPointFactory.cs
│ ├── InfluxDbLog4TcOutputFactory.cs
│ ├── InfluxDbLog4TcOutputPlugin.cs
│ ├── InfluxDbOutput.cs
│ ├── InfluxDbOutputSettings.cs
│ ├── Mbc.Log4Tc.Output.InfluxDb.csproj
│ └── SyslogPointFactory.cs
├── Mbc.Log4Tc.Output.NLog.Test
│ ├── CommonNLogTests.cs
│ ├── Mbc.Log4Tc.Output.NLog.Test.csproj
│ └── NLogLog4TcOutputTest.cs
├── Mbc.Log4Tc.Output.NLog
│ ├── Extensions
│ │ ├── AllEventPropertiesLayoutRenderer.cs
│ │ └── Log4JXmlEventLayoutRenderer.cs
│ ├── Mbc.Log4Tc.Output.NLog.csproj
│ ├── NLog.config
│ ├── NLog.config.log4view
│ ├── NLog.config.textlogging
│ ├── NLogLinux.config
│ ├── NLogLog4TcOutput.cs
│ ├── NLogLog4TcOutputConfiguration.cs
│ ├── NLogLog4TcOutputFactory.cs
│ ├── NLogLog4TcOutputInitializer.cs
│ ├── NLogLog4TcOutputPlugin.cs
│ └── NLogTarget
│ │ ├── ApplicationInsightsTarget.cs
│ │ ├── TargetPropertyWithContext.cs
│ │ └── readme.md
├── Mbc.Log4Tc.Output.Sql
│ ├── BaseSqlWriter.cs
│ ├── DbValueType.cs
│ ├── FullFlatSqlWriter.cs
│ ├── Mbc.Log4Tc.Output.Sql.csproj
│ ├── README.md
│ ├── SimpleFlatSqlWriter.cs
│ ├── SqlLog4TcOutputFactory.cs
│ ├── SqlLog4TcOutputPlugin.cs
│ ├── SqlOutput.cs
│ └── SqlOutputSettings.cs
├── Mbc.Log4Tc.Output
│ ├── IOutputFactory.cs
│ ├── Mbc.Log4Tc.Output.csproj
│ ├── OutputExtensions.cs
│ └── OutputHandlerBase.cs
├── Mbc.Log4Tc.Plugin
│ ├── IPlugin.cs
│ ├── Log4TcPluginAttribute.cs
│ ├── Mbc.Log4Tc.Plugin.csproj
│ ├── PluginBuilder.cs
│ ├── PluginExtensions.cs
│ └── PluginLoader.cs
├── Mbc.Log4Tc.Receiver
│ ├── AdsHostnameService.cs
│ ├── AdsLogReceiver.cs
│ ├── AdsLogReceiverExtensions.cs
│ ├── AdsLogReceiverService.cs
│ ├── ILogReceiver.cs
│ ├── LogEntryEventArgs.cs
│ └── Mbc.Log4Tc.Receiver.csproj
├── Mbc.Log4Tc.Service
│ ├── InstallService.ps1
│ ├── Mbc.Log4Tc.Service.csproj
│ ├── Program.cs
│ ├── Properties
│ │ └── launchSettings.json
│ ├── UninstallService.ps1
│ ├── appsettings.Development.json
│ ├── appsettings.Production.json
│ ├── appsettings.json
│ ├── appsettingsInflux.json
│ ├── appsettingsSample.json
│ └── appsettingsSql.json
├── Mbc.Log4Tc.Setup.Wix
│ ├── EULA.rtf
│ ├── Fragments
│ │ ├── Common
│ │ │ └── Log4TcCommonStartmenu.wxs
│ │ ├── Log4TcServiceFeature
│ │ │ ├── Log4TcServiceInstall.wxs
│ │ │ └── Log4TcServiceOutputFiles.wxs
│ │ ├── Log4TcTwinCatLibFeature
│ │ │ ├── Log4TcTwinCatLib.wxs
│ │ │ ├── Log4TcTwinCatLibGettingStarted.wxs
│ │ │ └── mbc_engineering_log4tc.tmc
│ │ └── TwinCat3.wxs
│ ├── Includes
│ │ └── DefinitionsPlatform.wxi
│ ├── Mbc.Log4Tc.Setup.Wix.wixproj
│ ├── Package.en-us.wxl
│ ├── Product.wxs
│ └── Resources
│ │ ├── favicon.ico
│ │ ├── favicon.png
│ │ ├── log4TcBackground.png
│ │ ├── mbcBackground.png
│ │ └── mbcBanner.png
├── Mbc.Log4Tc.SmokeTest
│ ├── Log4TcService.cs
│ ├── Mbc.Log4Tc.SmokeTest.csproj
│ ├── PlcControl.cs
│ ├── SmokeTest.cs
│ └── TestRecordingOutput.cs
├── Mbc.Log4Tc.Utils
│ ├── DataAnnotations
│ │ └── TypeClassValidationAttribute.cs
│ └── Mbc.Log4Tc.Utils.csproj
├── dockerfile
└── stylecop.json
├── TwinCat_Examples
├── .gitignore
├── GettingStarted
│ ├── .gitignore
│ ├── A_SimpleLogMessage
│ │ ├── A_SimpleLogMessage.plcproj
│ │ ├── MAIN.TcPOU
│ │ └── PlcTask.TcTTO
│ ├── B_LogMessageWithArg
│ │ ├── B_LogMessageWithArg.plcproj
│ │ ├── MAIN.TcPOU
│ │ └── PlcTask.TcTTO
│ ├── C_LogWithLogger
│ │ ├── C_LogWithLogger.plcproj
│ │ ├── MAIN.TcPOU
│ │ └── PlcTask.TcTTO
│ ├── D_LogWithContext
│ │ ├── D_LogWithContext.plcproj
│ │ ├── MAIN.TcPOU
│ │ └── PlcTask.TcTTO
│ ├── E_StructuredLogging
│ │ ├── E_StructuredLogging.plcproj
│ │ ├── MAIN.TcPOU
│ │ └── PlcTask.TcTTO
│ ├── GettingStarted.sln
│ ├── GettingStarted.tsproj
│ └── _Config
│ │ └── PLC
│ │ ├── A_SimpleLogMessage.xti
│ │ ├── B_LogMessageWithArg.xti
│ │ ├── C_LogWithLogger.xti
│ │ ├── D_LogWithContext.xti
│ │ ├── E_StructuredLogging.xti
│ │ └── LoggingExample.xti
├── LICENSE
├── README.md
├── graylog
│ ├── Plc
│ │ ├── Plc.sln
│ │ ├── Plc.tsproj
│ │ ├── Plc1
│ │ │ ├── FB_LogTaskCycleTime.TcPOU
│ │ │ ├── MAIN.TcPOU
│ │ │ ├── PRG_SimulateLoad.TcPOU
│ │ │ ├── PRG_SimulateLogs.TcPOU
│ │ │ ├── Plc1.plcproj
│ │ │ └── PlcTask.TcTTO
│ │ └── _Config
│ │ │ └── PLC
│ │ │ └── Plc1.xti
│ ├── README.md
│ ├── appsettings.json
│ ├── assets
│ │ ├── graylog_add_to_query.png
│ │ ├── graylog_message_detail.png
│ │ ├── graylog_search.png
│ │ └── input_settings_graylog.png
│ └── docker-compose.yml
├── influx_on_beckhoff-rt-linux
│ ├── .gitignore
│ ├── appsettings.json
│ ├── initdb.iql
│ ├── log4TC_chronografDashbord.json
│ ├── log4TC_pod.yaml
│ └── readme.md
└── influx_with_message
│ ├── Plc
│ ├── Plc.sln
│ ├── Plc.tsproj
│ ├── Plc1
│ │ ├── FB_LogTaskCycleTime.TcPOU
│ │ ├── MAIN.TcPOU
│ │ ├── PRG_SimulateLoad.TcPOU
│ │ ├── PRG_SimulateLogs.TcPOU
│ │ ├── PRG_SimulatedControlPlant.TcPOU
│ │ ├── Plc1.plcproj
│ │ ├── PlcTask.TcTTO
│ │ └── Utils
│ │ │ ├── FB_PT1.TcPOU
│ │ │ └── FB_Plant.TcPOU
│ └── _Config
│ │ └── PLC
│ │ └── Plc1.xti
│ ├── README.md
│ ├── appsettings.json
│ ├── assets
│ ├── chronograf_charts.png
│ └── chronograf_log_viewer.png
│ ├── docker-compose.yml
│ ├── initdb.iql
│ └── log4TC.json
├── TwinCat_Lib
└── log4tc
│ ├── .gitignore
│ ├── log4tc.sln
│ └── log4tc
│ ├── _Config
│ └── PLC
│ │ ├── log4Tc_SmokeTest.xti
│ │ ├── log4Tc_SmokeTest.xti.bak
│ │ ├── log4Tc_Tester.xti
│ │ ├── log4Tc_Tester.xti.bak
│ │ ├── mbc_Log4TC.xti.bak
│ │ └── mbc_log4tc.xti
│ ├── log4Tc_SmokeTest
│ ├── .gitignore
│ ├── POUs
│ │ └── MAIN.TcPOU
│ ├── PlcTask.TcTTO
│ └── log4Tc_SmokeTest.plcproj
│ ├── log4Tc_Tester
│ ├── .gitignore
│ ├── GVLs
│ │ └── GVL.TcGVL
│ ├── POUs
│ │ ├── CheckBounds.TcPOU
│ │ ├── CheckLRangeSigned.TcPOU
│ │ ├── CheckLRangeUnsigned.TcPOU
│ │ ├── CheckPointer.TcPOU
│ │ ├── CheckRangeSigned.TcPOU
│ │ ├── CheckRangeUnsigned.TcPOU
│ │ ├── FB_TcExternalTime.TcPOU
│ │ ├── F_FUN.TcPOU
│ │ ├── MAIN.TcPOU
│ │ └── PRG_TestSimpleApi.TcPOU
│ ├── PlcTask.TcTTO
│ ├── _Libraries
│ │ ├── beckhoff automation gmbh
│ │ │ ├── tc2_standard
│ │ │ │ └── 3.3.2.0
│ │ │ │ │ └── tc2_standard.compiled-library
│ │ │ ├── tc2_system
│ │ │ │ └── 3.4.21.0
│ │ │ │ │ └── tc2_system.compiled-library
│ │ │ ├── tc2_utilities
│ │ │ │ └── 3.3.35.0
│ │ │ │ │ └── tc2_utilities.compiled-library
│ │ │ └── tc3_module
│ │ │ │ └── 3.3.21.0
│ │ │ │ └── tc3_module.compiled-library
│ │ ├── mbc engineering gmbh
│ │ │ └── log4tc
│ │ │ │ ├── 0.0.1
│ │ │ │ └── mbc_log4tc.library
│ │ │ │ └── 0.0.2
│ │ │ │ └── mbc_log4tc_v.0.0.2.library
│ │ ├── system
│ │ │ ├── base interfaces
│ │ │ │ └── 3.5.2.0
│ │ │ │ │ └── base_itfs.compiled-library
│ │ │ ├── cmperrors2 interfaces
│ │ │ │ └── 3.5.12.0
│ │ │ │ │ └── cmperrors2_itfs.compiled-library
│ │ │ ├── sysdir
│ │ │ │ ├── 3.5.12.0
│ │ │ │ │ └── sysdir.compiled-library
│ │ │ │ └── 3.5.8.0
│ │ │ │ │ └── sysdir.compiled-library
│ │ │ ├── sysfile
│ │ │ │ └── 3.5.9.0
│ │ │ │ │ └── sysfile.compiled-library
│ │ │ └── systypes2 interfaces
│ │ │ │ └── 3.5.4.0
│ │ │ │ └── systypes_itfs.compiled-library
│ │ └── www.tcunit.org
│ │ │ └── tcunit
│ │ │ └── 1.1.0.0
│ │ │ └── tcunit.library
│ └── log4Tc_Tester.plcproj
│ ├── log4tc.tsproj
│ └── mbc_Log4TC
│ ├── .gitignore
│ ├── API
│ ├── Context
│ │ ├── FB_ScopedContext.TcPOU
│ │ ├── F_LogContext.TcPOU
│ │ └── I_ContextBuilder.TcIO
│ ├── E_LogLevel.TcDUT
│ ├── Full
│ │ ├── FB_Logger.TcPOU
│ │ └── FB_LoggerLAC.TcPOU
│ ├── PRG_TaskLog.TcPOU
│ └── Simple
│ │ ├── Any
│ │ ├── F_LogA1.TcPOU
│ │ ├── F_LogA10.TcPOU
│ │ ├── F_LogA2.TcPOU
│ │ ├── F_LogA3.TcPOU
│ │ ├── F_LogA4.TcPOU
│ │ ├── F_LogA5.TcPOU
│ │ ├── F_LogA6.TcPOU
│ │ ├── F_LogA7.TcPOU
│ │ ├── F_LogA8.TcPOU
│ │ ├── F_LogA9.TcPOU
│ │ ├── F_LogLA1.TcPOU
│ │ ├── F_LogLA10.TcPOU
│ │ ├── F_LogLA10C.TcPOU
│ │ ├── F_LogLA1C.TcPOU
│ │ ├── F_LogLA2.TcPOU
│ │ ├── F_LogLA2C.TcPOU
│ │ ├── F_LogLA3.TcPOU
│ │ ├── F_LogLA3C.TcPOU
│ │ ├── F_LogLA4.TcPOU
│ │ ├── F_LogLA4C.TcPOU
│ │ ├── F_LogLA5.TcPOU
│ │ ├── F_LogLA5C.TcPOU
│ │ ├── F_LogLA6.TcPOU
│ │ ├── F_LogLA6C.TcPOU
│ │ ├── F_LogLA7.TcPOU
│ │ ├── F_LogLA7C.TcPOU
│ │ ├── F_LogLA8.TcPOU
│ │ ├── F_LogLA8C.TcPOU
│ │ ├── F_LogLA9.TcPOU
│ │ └── F_LogLA9C.TcPOU
│ │ ├── F_Log.TcPOU
│ │ ├── F_LogBuilder.TcPOU
│ │ ├── F_LogC.TcPOU
│ │ ├── F_LogL.TcPOU
│ │ ├── F_LogLC.TcPOU
│ │ ├── I_LogBuilder.TcIO
│ │ └── TArg
│ │ ├── F_LogL1.TcPOU
│ │ ├── F_LogL10.TcPOU
│ │ ├── F_LogL2.TcPOU
│ │ ├── F_LogL3.TcPOU
│ │ ├── F_LogL4.TcPOU
│ │ ├── F_LogL5.TcPOU
│ │ ├── F_LogL6.TcPOU
│ │ ├── F_LogL7.TcPOU
│ │ ├── F_LogL8.TcPOU
│ │ └── F_LogL9.TcPOU
│ ├── ApiTest.TcPOU
│ ├── DUTs
│ ├── E_CustomTypes.TcDUT
│ ├── E_Scope.TcDUT
│ ├── ST_Log4TcTaskInfo.TcDUT
│ └── ST_ScopedContextStack.TcDUT
│ ├── GVLs
│ ├── Config.TcGVL
│ ├── Const.TcGVL
│ └── Log4TcInfo.TcGVL
│ ├── ITFs
│ └── I_LogEntryAdder.TcIO
│ ├── POUs
│ ├── FB_ContextBuilder.TcPOU
│ ├── FB_Log4TcTask.TcPOU
│ ├── FB_LogEntry.TcPOU
│ ├── F_InternalLog.TcPOU
│ ├── F_LogA.TcPOU
│ ├── F_LogTArg.TcPOU
│ ├── PRG_ScopedContextStack.TcPOU
│ └── Utils
│ │ ├── FB_LogBuffer.TcPOU
│ │ ├── FB_RTC_Sync.TcPOU
│ │ ├── F_DINT_TO_UINT_MAX.TcPOU
│ │ └── IncUDINT.TcPOU
│ ├── Test
│ ├── FB_ContextBuilder_Test.TcPOU
│ ├── PRG_Test.TcPOU
│ └── PlcTask.TcTTO
│ ├── _Libraries
│ ├── beckhoff automation gmbh
│ │ ├── tc2_standard
│ │ │ └── 3.3.2.0
│ │ │ │ └── tc2_standard.compiled-library
│ │ ├── tc2_system
│ │ │ └── 3.4.21.0
│ │ │ │ └── tc2_system.compiled-library
│ │ ├── tc2_utilities
│ │ │ └── 3.3.35.0
│ │ │ │ └── tc2_utilities.compiled-library
│ │ └── tc3_module
│ │ │ └── 3.3.21.0
│ │ │ └── tc3_module.compiled-library
│ └── system
│ │ ├── base interfaces
│ │ └── 3.5.2.0
│ │ │ └── base_itfs.compiled-library
│ │ ├── cmperrors2 interfaces
│ │ └── 3.5.12.0
│ │ │ └── cmperrors2_itfs.compiled-library
│ │ ├── sysdir
│ │ └── 3.5.12.0
│ │ │ └── sysdir.compiled-library
│ │ ├── sysfile
│ │ └── 3.5.9.0
│ │ │ └── sysfile.compiled-library
│ │ └── systypes2 interfaces
│ │ └── 3.5.4.0
│ │ └── systypes_itfs.compiled-library
│ └── mbc_log4tc.plcproj
└── WinCEKey.py
/.azure-pipelines/templates/docs/build-job.yaml:
--------------------------------------------------------------------------------
1 | ##############################################################
2 | # Description:
3 | # This Job is used to build the log4TC documentation
4 | ##############################################################
5 |
6 | jobs:
7 | - job: 'build_docs'
8 | displayName: 'Create the documentation'
9 | pool:
10 | vmImage: 'ubuntu-24.04'
11 | steps:
12 | - checkout: self
13 | submodules: recursive
14 | - template: ${{ variables.Pipeline.Workspace }}/.azure-pipelines/templates/docs/build.yaml
15 |
--------------------------------------------------------------------------------
/.azure-pipelines/templates/docs/build.yaml:
--------------------------------------------------------------------------------
1 | ##############################################################
2 | # Description:
3 | # This Stage is used to build and test log4TC for Windows
4 | # It generates all the artifacts msi & docs
5 | ##############################################################
6 |
7 | steps:
8 | - script: dotnet build $(System.DefaultWorkingDirectory)/docs/docfx.csproj
9 | displayName: "build docfx documentation"
10 |
11 | - task: CopyFiles@2
12 | displayName: 'Copy generated docfx docs files'
13 | inputs:
14 | SourceFolder: 'docs/_site'
15 | Contents: '**'
16 | TargetFolder: '$(Build.ArtifactStagingDirectory)/docs'
17 | CleanTargetFolder: true
18 |
19 | - publish: $(Build.ArtifactStagingDirectory)/docs
20 | displayName: 'Publish docs files'
21 | artifact: 'docs'
22 |
--------------------------------------------------------------------------------
/.azure-pipelines/templates/log4tc/build-job.yaml:
--------------------------------------------------------------------------------
1 | ##############################################################
2 | # Description:
3 | # This Job is used to build and test log4TC
4 | ##############################################################
5 |
6 | jobs:
7 | - job: 'build_windows'
8 | displayName: 'Build the windows application'
9 | pool:
10 | vmImage: 'windows-2022'
11 | steps:
12 | - checkout: self
13 | submodules: recursive
14 | - template: ${{ variables.Pipeline.Workspace }}/.azure-pipelines/templates/log4tc/build-windows.yaml
15 |
16 | - job: 'build_linux'
17 | displayName: 'Build the linux application'
18 | pool:
19 | vmImage: 'ubuntu-24.04'
20 | steps:
21 | - checkout: self
22 | submodules: recursive
23 | - template: ${{ variables.Pipeline.Workspace }}/.azure-pipelines/templates/log4tc/build-linux.yaml
24 |
--------------------------------------------------------------------------------
/.azure-pipelines/templates/tclibrary/build-job.yaml:
--------------------------------------------------------------------------------
1 | ##############################################################
2 | # Description:
3 | # This Job is used to build the log4TC documentation
4 | ##############################################################
5 |
6 | jobs:
7 | - job: 'build_library'
8 | displayName: 'Create the TC Library'
9 | pool:
10 | vmImage: 'ubuntu-24.04'
11 | steps:
12 | - checkout: self
13 | submodules: recursive
14 | - template: ${{ variables.Pipeline.Workspace }}/.azure-pipelines/templates/tclibrary/build.yaml
15 |
--------------------------------------------------------------------------------
/.azure-pipelines/templates/tclibrary/build.yaml:
--------------------------------------------------------------------------------
1 | ##############################################################
2 | # Description:
3 | # This Stage is used to build and test log4TC for Windows
4 | # It generates all the artifacts msi & docs
5 | ##############################################################
6 |
7 | steps:
8 | - task: CopyFiles@2
9 | displayName: 'Copy generated docfx docs files'
10 | inputs:
11 | SourceFolder: 'library'
12 | Contents: '**'
13 | TargetFolder: '$(Build.ArtifactStagingDirectory)/tclibrary'
14 | CleanTargetFolder: true
15 |
16 | - publish: $(Build.ArtifactStagingDirectory)/tclibrary
17 | displayName: 'Publish tclibrary files'
18 | artifact: 'tclibrary'
19 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Author: michael.helfenstein@noser.com
2 | # Updated: 2024-01-11
3 | # Handle the Line Endings in git correctly
4 | # see: https://docs.github.com/en/get-started/getting-started-with-git/configuring-git-to-handle-line-endings#per-repository-settings
5 | #
6 | # Set the default behavior, if Git thinks a file is text (as opposed to binary),
7 | # also in case people don't have core.autocrlf set.
8 | * text=auto
9 |
10 | # Explicitly declare text files you want to always be normalized and converted
11 | # to native line endings on checkout. E.g.,
12 | #*.c text
13 |
14 | # Declare files that will always have LF line endings on checkout.
15 | *.py text eol=lf
16 | *.azcli text eol=lf
17 | *.sh text eol=lf
18 | Jenkinsfile text eol=lf
19 | *.Jenkinsfile text eol=lf
20 | # Terraform stuff
21 | *.tf text eol=lf
22 | *.tfvars text eol=lf
23 | *.tfstate text eol=lf
24 | *.hcl text eol=lf
25 |
26 |
27 | # Denote all files that should not have line endings normalized, should not be
28 | # merged, and should not show in a textual diff.
29 | *.docm binary
30 | *.docx binary
31 | *.ico binary
32 | *.lib binary
33 | *.png binary
34 | *.pptx binary
35 | *.snk binary
36 | *.vsdx binary
37 | *.xps binary
38 | *.dll binary
39 | *.exe binary
--------------------------------------------------------------------------------
/.github/release.yml:
--------------------------------------------------------------------------------
1 | # .github/release.yml to create Automatically generated release notes
2 | # https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes
3 |
4 | changelog:
5 | categories:
6 | - title: 🏕 Features
7 | labels:
8 | - '*'
9 | exclude:
10 | labels:
11 | - dependencies
12 | - bug
13 | - title: 🏕 Bugs
14 | labels:
15 | - bug
16 | exclude:
17 | labels:
18 | - dependencies
19 | # separate dependabot updates
20 | - title: 👒 Dependencies
21 | labels:
22 | - dependencies
23 |
--------------------------------------------------------------------------------
/azure-pipelines-ci.yml:
--------------------------------------------------------------------------------
1 | ##############################################################
2 | # Description:
3 | # This Pipeline is used to CI build the application
4 | # It should check the code and run the tests in Pull Requests
5 | ##############################################################
6 |
7 | trigger:
8 | batch: true
9 |
10 | # Pull Request Trigger
11 | pr:
12 | branches:
13 | include:
14 | - master
15 | - main
16 | - dev
17 |
18 | stages:
19 | - stage: 'build'
20 | displayName: 'Build the applications'
21 | jobs:
22 | # log4TC
23 | - template: ${{ variables.Pipeline.Workspace }}/.azure-pipelines/templates/log4tc/build-job.yaml
24 | # Documentation
25 | - template: ${{ variables.Pipeline.Workspace }}/.azure-pipelines/templates/docs/build-job.yaml
26 | # tclibrary
27 | - template: ${{ variables.Pipeline.Workspace }}/.azure-pipelines/templates/tclibrary/build-job.yaml
28 |
--------------------------------------------------------------------------------
/docs/.gitignore:
--------------------------------------------------------------------------------
1 | ###############
2 | # folder #
3 | ###############
4 | /**/DROP/
5 | /**/TEMP/
6 | /**/packages/
7 | /**/bin/
8 | /**/obj/
9 | _site
10 | log.txt
11 | .vscode/
--------------------------------------------------------------------------------
/docs/DocFxBuild.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/docs/api/toc.yml:
--------------------------------------------------------------------------------
1 | ### YamlMime:TableOfContent
2 | - name: Log4TcPrototype
3 |
--------------------------------------------------------------------------------
/docs/assets/architektur.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/docs/assets/architektur.png
--------------------------------------------------------------------------------
/docs/assets/showcase.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/docs/assets/showcase.png
--------------------------------------------------------------------------------
/docs/docfx.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | net8.0
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/docs/dotnet-tools.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": 1,
3 | "isRoot": true,
4 | "tools": {
5 | "docfx": {
6 | "version": "2.78.2",
7 | "commands": [
8 | "docfx"
9 | ],
10 | "rollForward": false
11 | }
12 | }
13 | }
--------------------------------------------------------------------------------
/docs/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/docs/favicon.ico
--------------------------------------------------------------------------------
/docs/gettingstarted/add_log4tc_lib.md:
--------------------------------------------------------------------------------
1 | # log4TC Library zum SPS-Projekt hinzufügen
2 |
3 | ## Library als Referenz hinzufügen
4 |
5 | Die log4TC-Library wird mit der Installation als SPS-Library registriert und muss noch in das Projekt eingebunden werden:
6 |
7 | 1. Doppelklick auf Order *References* im SPS-Projekt -> *Library Manager* wird geöffnet
8 | 1. "Add library" anwählen
9 | 1. Im Dialog den Suchtext "log4tc" eingeben; in der Liste sollte die Library "Log4TC" erscheinen
10 | 1. Doppelklick auf "Log4TC"
11 |
12 | Die Referenzen sollte wie folgt aussehen (Versionnummer kann variieren):
13 |
14 | 
15 |
16 | ## Nächster Schritt
17 |
18 | [Ausgabe einer einfachen Log-Meldung](simple_logging.md)
19 |
20 |
--------------------------------------------------------------------------------
/docs/gettingstarted/assets/architektur.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/docs/gettingstarted/assets/architektur.png
--------------------------------------------------------------------------------
/docs/gettingstarted/assets/chronograf_log4tc_dashboard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/docs/gettingstarted/assets/chronograf_log4tc_dashboard.png
--------------------------------------------------------------------------------
/docs/gettingstarted/assets/log1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/docs/gettingstarted/assets/log1.png
--------------------------------------------------------------------------------
/docs/gettingstarted/assets/log2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/docs/gettingstarted/assets/log2.png
--------------------------------------------------------------------------------
/docs/gettingstarted/assets/log3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/docs/gettingstarted/assets/log3.png
--------------------------------------------------------------------------------
/docs/gettingstarted/assets/log4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/docs/gettingstarted/assets/log4.png
--------------------------------------------------------------------------------
/docs/gettingstarted/assets/log4view.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/docs/gettingstarted/assets/log4view.png
--------------------------------------------------------------------------------
/docs/gettingstarted/assets/log4view_config.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/docs/gettingstarted/assets/log4view_config.png
--------------------------------------------------------------------------------
/docs/gettingstarted/assets/log4view_options.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/docs/gettingstarted/assets/log4view_options.png
--------------------------------------------------------------------------------
/docs/gettingstarted/assets/log5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/docs/gettingstarted/assets/log5.png
--------------------------------------------------------------------------------
/docs/gettingstarted/assets/log_folder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/docs/gettingstarted/assets/log_folder.png
--------------------------------------------------------------------------------
/docs/gettingstarted/assets/programdata.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/docs/gettingstarted/assets/programdata.png
--------------------------------------------------------------------------------
/docs/gettingstarted/assets/references.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/docs/gettingstarted/assets/references.png
--------------------------------------------------------------------------------
/docs/gettingstarted/assets/solution.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/docs/gettingstarted/assets/solution.png
--------------------------------------------------------------------------------
/docs/gettingstarted/create_twincat_project.md:
--------------------------------------------------------------------------------
1 | # TwinCAT Projekt anlegen
2 |
3 | Um den Beispielen zu folgen, wird ein neues TwinCAT Projekt mit einem SPS-Projekt benötigt. Das Projekt muss für das Beispiel auf den gleichen Rechner aktiviert werden, auf dem auch log4TC installiert ist. Eine lokale Testlizenz ist ausreichend.
4 |
5 | ## Solution (TwinCAT Project) anlegen
6 |
7 | 1. Neues leeres TwinCAT XAE Projekt anlegen
8 | 1. Neues "Standard PLC Project" anlegen
9 |
10 | Es müssen keine speziellen Einstellungen vorgenommen werden.
11 |
12 | Die Visual Studio Solution sollte wie folgt aussehen:
13 |
14 | 
15 |
16 | ## Nächster Schritt
17 |
18 | [log4TC-Library hinzufügen](add_log4tc_lib.md)
--------------------------------------------------------------------------------
/docs/gettingstarted/toc.yml:
--------------------------------------------------------------------------------
1 | - name: Erste Schritte Tour
2 | href: intro.md
3 | items:
4 | - name: TwinCat Project anlegen
5 | href: create_twincat_project.md
6 | - name: log4TC Library zum SPS-Projekt hinzufügen
7 | href: add_log4tc_lib.md
8 | - name: Ausgabe einer einfachen Log-Meldung
9 | href: simple_logging.md
10 | - name: Ausgabe von Log-Meldungen mit Argumenten
11 | href: argument_logging.md
12 | - name: Benutzung von Loggern
13 | href: logger_usage.md
14 | - name: Integration von Context-Eigenschaften
15 | href: context_usage.md
16 | - name: Log-Meldungen mit Log4View beobachten
17 | href: tools_log4view.md
18 | - name: Protokollierung von strukturierten Werten
19 | href: write_structured_values.md
20 |
--------------------------------------------------------------------------------
/docs/internal/assets/Kontextdiagramm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/docs/internal/assets/Kontextdiagramm.png
--------------------------------------------------------------------------------
/docs/internal/assets/Systemkomponenten.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/docs/internal/assets/Systemkomponenten.png
--------------------------------------------------------------------------------
/docs/internal/details.md:
--------------------------------------------------------------------------------
1 | # Design Details
2 |
3 | ## Log-Event
4 |
5 | Der *Log-Event* beschreibt die Datenstruktur die beim Logging erfasst wird und über die interne Schnittstelle von der Echtzeit in die nicht Echtzeit zur weiteren Überarbeitung übertragen wird.
6 |
7 | Ein Log-Event besteht aus folgenden Daten:
8 |
9 | |Feld|Zweck|
10 | |---|---|
11 | |Log-Message|Enthält die eigentliche Log-Message als primitiven Datentyp (String, aber auch z.B. Integer). Dieses Feld ist zwingend.|
12 | |Log-Name|Name des Loggers, der die Log-Message auslöst. Wie bei Log-Systemen üblich kann der Name hierarchisch mit "." gegliedert werden|
13 | |Log-Level|Die wichtigkeit des Log-Events. Dient hauptsächlich zur Filterung. Der Level besteht aus einer vordefinierten Menge (Enum).|
14 | |TC-Timestamp|Der TwinCAT-Zeitstempel in der vollen Auflösung.|
15 | |PC-Timestamp|Der PC-Zeitstempel der normalen Uhr.|
16 | |Message Arguments|Enthält die Argumente der Message, sofern welche vorhanden sind.|
17 | |Message Attributes|Enthält optionale Attribute um eine Log-Message genauer zu beschreiben bzw. eine Context zu definieren.|
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 | TODO:
26 | * Kann der TwinCAT-Zeitstempel durch Ticks noch genauer definiert werden?
--------------------------------------------------------------------------------
/docs/internal/intro.md:
--------------------------------------------------------------------------------
1 | # Einführung
2 |
3 | ## Anwendungsbereich
4 |
5 | Das *log4tc* ist ein Softwarepaket, das auf TwinCAT-Systemen installiert werden kann, um Log-Meldungen der TwinCAT-Runtime zu erfassen und weiterzuverarbeiten wie z. B. speichern oder visualisieren. Es dient damit der Fehlersuche, Auditing und Protokollierung.
6 |
7 | Das *log4tc* wird von der mbc als kommerzielles Add-On Produkt für TwinCAT vertrieben und gepflegt. Für interessierte Kunden sollen kostenlose eingeschränkte Testversionen möglich sein.
8 |
9 | Der grundlegende Funktionsumfang orientiert sich an der etablierten [NLog-Platform](https://nlog-project.org).
10 |
11 |
12 | ## Referenzen
13 |
14 | Message Templates (Structured Logging):
15 | https://messagetemplates.org/
16 |
17 | NLog-Homepage:
18 | https://nlog-project.org
19 |
20 |
21 |
--------------------------------------------------------------------------------
/docs/internal/licensing.md:
--------------------------------------------------------------------------------
1 | # Lizenzierung
2 |
3 | Draft
4 |
5 | ## Test-Lizenz / Entwickler-Lizenz
6 |
7 | * alle Features
8 | * Einschränkung auf max. 10000 Meldungen (Mike: eher nicht beschränken)
9 | * Einschränkung auf max. 12h
10 |
11 | ## Runtime-Lizenz
12 |
13 | * Lizenzierung über Beckhoff (weiter Abklärung notwendig)
14 | * Abhängig von Leistungsklasse (Performance-Level)
15 | * P90: 250Fr. inkl. 1 Jahr Updates
16 | * P40: 100Fr. inkl. 1 Jahr Update
17 | * Update Verlängerung: 50Fr/Jahr (eher nicht, wegen verpflichtung; Update-Preis)
18 | * Staffelpreise?
19 | * Support-Packages?
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/docs/internal/links.md:
--------------------------------------------------------------------------------
1 | # Links
2 |
3 | Hier sollen alle LInks zu log4TC gesammelt werden.
4 |
5 | * [Dokumentation auf Github Pages ](https://mbc-engineering.github.io/log4TC/)
6 | * [Devops auf Azure](https://dev.azure.com/mbc-engineering/log4tc)
7 |
8 |
--------------------------------------------------------------------------------
/docs/internal/toc.yml:
--------------------------------------------------------------------------------
1 | - name: Log4Tc Problemlösung
2 | href: project_poster.md
3 | items:
4 | - name: Beschreibung
5 | href: description.md
6 | - name: Details
7 | href: details.md
8 | - name: SPS
9 | href: sps.md
10 |
--------------------------------------------------------------------------------
/docs/print/FlyerA4 - Log4TC.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/docs/print/FlyerA4 - Log4TC.docx
--------------------------------------------------------------------------------
/docs/print/FlyerA4 - Log4TC.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/docs/print/FlyerA4 - Log4TC.pdf
--------------------------------------------------------------------------------
/docs/print/LogoFinalBackground.svg:
--------------------------------------------------------------------------------
1 |
12 |
--------------------------------------------------------------------------------
/docs/print/LogoFinalGitHub (1280x640).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/docs/print/LogoFinalGitHub (1280x640).png
--------------------------------------------------------------------------------
/docs/print/Product_Sheet.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/docs/print/Product_Sheet.docx
--------------------------------------------------------------------------------
/docs/print/mbc_log4tc_qr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/docs/print/mbc_log4tc_qr.png
--------------------------------------------------------------------------------
/docs/reference/assets/setup_endwitherror.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/docs/reference/assets/setup_endwitherror.png
--------------------------------------------------------------------------------
/docs/reference/assets/setup_service_links.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/docs/reference/assets/setup_service_links.png
--------------------------------------------------------------------------------
/docs/reference/assets/setup_successfull.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/docs/reference/assets/setup_successfull.png
--------------------------------------------------------------------------------
/docs/reference/assets/stup_log4View_networkstream.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/docs/reference/assets/stup_log4View_networkstream.png
--------------------------------------------------------------------------------
/docs/reference/assets/vscode_log_viewer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/docs/reference/assets/vscode_log_viewer.png
--------------------------------------------------------------------------------
/docs/reference/index.md:
--------------------------------------------------------------------------------
1 | # Referenz
2 |
3 | * [Installation](installation.md)
4 | * [log4TC Servicekonfiguration](service_config.md)
5 | * [Log-Level](loglevel.md)
6 | * [NLog-Ausgabe](nlog_output.md)
7 | * [Graylog-Ausgabe](graylog_output.md)
8 | * [InfluxDB-Ausgabe](influx_output.md)
9 | * [SQL-Ausgabe](sql_output.md)
10 | * [Platzhaler in Meldungen](placeholder.md)
11 | * [Tools](tools.md)
12 |
--------------------------------------------------------------------------------
/docs/reference/toc.yml:
--------------------------------------------------------------------------------
1 | - name: Werkzeuge
2 | href: tools.md
3 | - name: Formatierung
4 | href: placeholder.md
5 | - name: Loglevel
6 | href: loglevel.md
7 | - name: NLog-Ausgabeplugin
8 | href: nlog_output.md
9 | - name: Graylog-Ausgabeplugin
10 | href: graylog_output.md
11 | - name: InfluxDB-Ausgabeplugin
12 | href: influx_output.md
13 | - name: SQL-Ausgabeplugin
14 | href: sql_output.md
15 | - name: Installation
16 | href: installation.md
17 | - name: log4TC Servicekonfiguration
18 | href: service_config.md
19 |
--------------------------------------------------------------------------------
/docs/template/public/main.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Licensed to the .NET Foundation under one or more agreements.
3 | * The .NET Foundation licenses this file to you under the MIT license.
4 | */
5 |
6 | /* Checkout https://getbootstrap.com/docs/5.3/customize/color/ for more customization options */
7 | body {
8 | --bs-link-color-rgb: 66, 184, 131 !important;
9 | --bs-link-hover-color-rgb: 64, 180, 128 !important;
10 | }
11 |
--------------------------------------------------------------------------------
/docs/template/public/main.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Licensed to the .NET Foundation under one or more agreements.
3 | * The .NET Foundation licenses this file to you under the MIT license.
4 | */
5 |
6 | export default {
7 | iconLinks: [
8 | {
9 | icon: 'github',
10 | href: 'https://github.com/mbc-engineering/log4TC',
11 | title: 'GitHub'
12 | }
13 | ]
14 | }
15 |
--------------------------------------------------------------------------------
/docs/toc.yml:
--------------------------------------------------------------------------------
1 | - name: Erste Schritte
2 | href: gettingstarted/intro.md
3 | - name: Referenzen
4 | href: reference/
5 | - name: Changelog
6 | href: Changelog.md
7 |
--------------------------------------------------------------------------------
/library/mbc_Log4TC.library:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/library/mbc_Log4TC.library
--------------------------------------------------------------------------------
/library/mbc_Log4TC_v0.2.1.library:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/library/mbc_Log4TC_v0.2.1.library
--------------------------------------------------------------------------------
/source/AdsRouterConsoleApp/.dockerignore:
--------------------------------------------------------------------------------
1 | [b|B]in
2 | [O|o]bj
3 | **/.classpath
4 | **/.dockerignore
5 | **/.env
6 | **/.git
7 | **/.gitignore
8 | **/.project
9 | **/.settings
10 | **/.toolstarget
11 | **/.vs
12 | **/.vscode
13 | **/*.*proj.user
14 | **/*.dbmdl
15 | **/*.jfm
16 | **/azds.yaml
17 | **/bin
18 | **/charts
19 | **/docker-compose*
20 | **/Dockerfile*
21 | **/node_modules
22 | **/npm-debug.log
23 | **/obj
24 | **/secrets.dev.yaml
25 | **/values.dev.yaml
26 | **/testresults
27 | LICENSE
28 | README.md
29 | **/**/testresults
30 |
--------------------------------------------------------------------------------
/source/AdsRouterConsoleApp/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | {
2 | // Use IntelliSense to find out which attributes exist for C# debugging
3 | // Use hover for the description of the existing attributes
4 | // For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md
5 | "version": "0.2.0",
6 | "configurations": [
7 | {
8 | "name": "Docker .NET Core Launch",
9 | "type": "docker",
10 | "request": "launch",
11 | "preLaunchTask": "docker-run: debug",
12 | "netCore": {
13 | "appProject": "${workspaceFolder}/src/AdsRouterConsoleApp.csproj"
14 | }
15 | }
16 | ]
17 | }
--------------------------------------------------------------------------------
/source/AdsRouterConsoleApp/Directory.Build.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
7 |
8 | Log4Tc-AdsRouter
9 | mbc Log4Tc-adsRouter
10 |
11 | Simple TCP/IP ADS Router Console Application for use on systems without TwinCAT installation / setup.
12 | Console ADS Router with AdsServer that is required to connect from log4TC Service
13 |
14 | bqstony
15 | mbc-engineering
16 | Copyright © mbc-engineering
17 |
18 | 24.11.08
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/source/AdsRouterConsoleApp/src/appSettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "AmsRouter": {
3 | "Name": "LocalSystem",
4 | "NetId": "1.1.1.1.1.1",
5 | "TcpPort": 48898,
6 | "RemoteConnections": [
7 | {
8 | "Name": "RemoteSystem",
9 | "Address": "192.168.0.2",
10 | "NetId": "2.2.2.2.1.1",
11 | "Type": "TCP_IP"
12 | }
13 | ]
14 | },
15 | "Logging": {
16 | "LogLevel": {
17 | "Default": "Information",
18 | "System": "Information",
19 | "Microsoft": "Information"
20 | },
21 | "Console": {
22 | "IncludeScopes": true
23 | }
24 | }
25 | }
--------------------------------------------------------------------------------
/source/AdsRouterConsoleApp/src/appsettingsSample.json:
--------------------------------------------------------------------------------
1 | {
2 | "AmsRouter": {
3 | "Name": "LocalSystem",
4 | "NetId": "172.19.13.9.1.1",
5 | "TcpPort": 48898,
6 | "RemoteConnections": [
7 | {
8 | "Name": "RemoteSystem",
9 | "Address": "10.10.1.122",
10 | "NetId": "172.21.208.1.1.1",
11 | "Type": "TCP_IP"
12 | }
13 | ]
14 | },
15 | "Logging": {
16 | "LogLevel": {
17 | "Default": "Information",
18 | "System": "Information",
19 | "Microsoft": "Information"
20 | },
21 | "Console": {
22 | "IncludeScopes": true
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/source/AdsRouterConsoleApp/src/settings-bridged-network.env:
--------------------------------------------------------------------------------
1 | # Alternative settings via Environment Variables
2 | # using config.AddEnvironmentVariables("ENV_") in ConfigureAppConfiguration
3 |
4 | # Basic ADS-Router config which has to match StaticRoutes on TwinCAT-Host systems
5 | ENV_AmsRouter__Name=AdsRouterConsole
6 | ENV_AmsRouter__NetId=55.123.98.42.1.1
7 |
8 | # IP and TCP socket on which the ADS-Router should listen on for incoming client connections
9 | ENV_AmsRouter__LoopbackIP=172.17.0.2
10 | ENV_AmsRouter__LoopbackPort=48900
11 |
12 | # Setting to accept incoming ADS-Client connections from the private container subnetwork
13 | ENV_AmsRouter__LoopbackExternalSubnet=172.17.0.0/16
14 |
15 | # Indexed List of remote connections to TwinCAT Hosts
16 | # First TwinCAT-Host
17 | ENV_AmsRouter__RemoteConnections__0__Name=TwinCAT-Host
18 | ENV_AmsRouter__RemoteConnections__0__Address=192.168.178.72
19 | ENV_AmsRouter__RemoteConnections__0__NetId=5.29.122.232.1.1
20 |
21 | # Another sample TwinCAT-Host
22 | ENV_AmsRouter__RemoteConnections__1__Name=Another-TwinCAT-Host
23 | ENV_AmsRouter__RemoteConnections__1__Address=192.168.178.74
24 | ENV_AmsRouter__RemoteConnections__1__NetId=19.58.12.202.1.1
25 |
26 | # Verbose log output
27 | ENV_Logging__LogLevel__Default=Debug
--------------------------------------------------------------------------------
/source/AdsRouterConsoleApp/src/settings-host-network.env:
--------------------------------------------------------------------------------
1 | # Alternative settings via Environment Variables
2 | # using config.AddEnvironmentVariables("ENV_") in ConfigureAppConfiguration
3 |
4 | # Basic ADS-Router config which has to match StaticRoutes on TwinCAT-Host systems
5 | ENV_AmsRouter__Name=AdsRouterConsoleApp
6 | ENV_AmsRouter__NetId=55.123.98.42.1.1
7 |
8 | # Indexed List of remote connections to TwinCAT Hosts
9 | # First TwinCAT-Host
10 | ENV_AmsRouter__RemoteConnections__0__Name=TwinCAT-Host
11 | ENV_AmsRouter__RemoteConnections__0__Address=192.168.178.72
12 | ENV_AmsRouter__RemoteConnections__0__NetId=5.29.122.232.1.1
13 |
14 | # Another sample TwinCAT-Host
15 | ENV_AmsRouter__RemoteConnections__1__Name=Another-TwinCAT-Host
16 | ENV_AmsRouter__RemoteConnections__1__Address=192.168.178.74
17 | ENV_AmsRouter__RemoteConnections__1__NetId=19.58.12.202.1.1
18 |
19 | # Verbose log output
20 | #ENV_Logging__LogLevel__Default=Debug
21 | ENV_Logging__LogLevel__Default=Information
--------------------------------------------------------------------------------
/source/Log4Tc/.dockerignore:
--------------------------------------------------------------------------------
1 | [b|B]in
2 | [O|o]bj
3 | **/.classpath
4 | **/.dockerignore
5 | **/.env
6 | **/.git
7 | **/.gitignore
8 | **/.project
9 | **/.settings
10 | **/.toolstarget
11 | **/.vs
12 | **/.vscode
13 | **/*.*proj.user
14 | **/*.dbmdl
15 | **/*.jfm
16 | **/azds.yaml
17 | **/bin
18 | **/charts
19 | **/docker-compose*
20 | **/Dockerfile*
21 | **/node_modules
22 | **/npm-debug.log
23 | **/obj
24 | **/secrets.dev.yaml
25 | **/values.dev.yaml
26 | **/testresults
27 | LICENSE
28 | README.md
29 | **/**/testresults
30 |
--------------------------------------------------------------------------------
/source/Log4Tc/.editorconfig:
--------------------------------------------------------------------------------
1 | # EditorConfig is awesome:http://EditorConfig.org
2 |
3 | root = true
4 |
5 | # Don't use tabs for indentation.
6 | [*]
7 | indent_style = space
8 |
9 | [*.{cs,csx}]
10 | ident_size = 4
11 | ident_style = space
12 | insert_final_newline = true;
13 |
14 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Dispatcher.Test/Filter/assets/EmptyFilter.json:
--------------------------------------------------------------------------------
1 | {
2 | }
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Dispatcher.Test/Filter/assets/MultipleSimpleFilter.json:
--------------------------------------------------------------------------------
1 | {
2 | "Filter": [
3 | {
4 | "Logger": "foo"
5 | },
6 | {
7 | "Logger": "bar"
8 | }
9 | ]
10 | }
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Dispatcher.Test/Filter/assets/SingleSimpleFilter.json:
--------------------------------------------------------------------------------
1 | {
2 | "Filter": {
3 | "Logger": "foo"
4 | }
5 | }
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Dispatcher.Test/Filter/assets/StringFilter.json:
--------------------------------------------------------------------------------
1 | {
2 | "Filter": "String"
3 | }
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Dispatcher/AssemblyProperties.cs:
--------------------------------------------------------------------------------
1 | using System.Runtime.CompilerServices;
2 |
3 | [assembly:InternalsVisibleTo("Mbc.Log4Tc.Dispatcher.Test")]
4 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Dispatcher/Filter/AllMatchFilter.cs:
--------------------------------------------------------------------------------
1 | using Mbc.Log4Tc.Model;
2 |
3 | namespace Mbc.Log4Tc.Dispatcher.Filter
4 | {
5 | ///
6 | /// A which matches any .
7 | ///
8 | public class AllMatchFilter : ILogFilter
9 | {
10 | public static readonly AllMatchFilter Default = new AllMatchFilter();
11 |
12 | public bool Matches(LogEntry logEntry) => true;
13 |
14 | public override string ToString() => "Filter(*)";
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Dispatcher/Filter/ILogFilter.cs:
--------------------------------------------------------------------------------
1 | using Mbc.Log4Tc.Model;
2 |
3 | namespace Mbc.Log4Tc.Dispatcher.Filter
4 | {
5 | ///
6 | /// Filter implementation for .
7 | ///
8 | public interface ILogFilter
9 | {
10 | ///
11 | /// Checks if this filter matches the given .
12 | ///
13 | /// The log entry for which the filter should be applied.
14 | /// true if this filter matches the , otherweise false
15 | bool Matches(LogEntry logEntry);
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Dispatcher/Filter/NoneMatchFilter.cs:
--------------------------------------------------------------------------------
1 | using Mbc.Log4Tc.Model;
2 |
3 | namespace Mbc.Log4Tc.Dispatcher.Filter
4 | {
5 | ///
6 | /// A which matches no .
7 | ///
8 | public class NoneMatchFilter : ILogFilter
9 | {
10 | public static readonly NoneMatchFilter Default = new NoneMatchFilter();
11 |
12 | public bool Matches(LogEntry logEntry) => false;
13 |
14 | public override string ToString() => "Filter(none)";
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Dispatcher/Filter/OrFilter.cs:
--------------------------------------------------------------------------------
1 | using Mbc.Log4Tc.Model;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 |
5 | namespace Mbc.Log4Tc.Dispatcher.Filter
6 | {
7 | ///
8 | /// Implements a which combines
9 | /// multiple with a or operation.
10 | ///
11 | public class OrFilter : ILogFilter
12 | {
13 | private readonly IReadOnlyList _filter;
14 |
15 | internal IEnumerable Filter => _filter;
16 |
17 | public OrFilter(IEnumerable filter)
18 | {
19 | _filter = new List(filter).AsReadOnly();
20 | }
21 |
22 | public bool Matches(LogEntry logEntry)
23 | {
24 | return _filter.All(x => x.Matches(logEntry));
25 | }
26 |
27 | public override string ToString()
28 | {
29 | return $"Or({string.Join(",", _filter.Select(x => x.ToString()))})";
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Dispatcher/LogDispatcherExtensions.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Extensions.Configuration;
2 | using Microsoft.Extensions.DependencyInjection;
3 |
4 | namespace Mbc.Log4Tc.Dispatcher
5 | {
6 | public static class LogDispatcherExtensions
7 | {
8 | public static IServiceCollection AddLog4TcDispatcher(this IServiceCollection services)
9 | {
10 | services.AddHostedService();
11 |
12 | return services;
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Dispatcher/Mbc.Log4Tc.Dispatcher.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net8.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | all
23 | runtime; build; native; contentfiles; analyzers; buildtransitive
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Model/AssemblyProperties.cs:
--------------------------------------------------------------------------------
1 | using System.Runtime.CompilerServices;
2 |
3 | [assembly:InternalsVisibleTo("Mbc.Log4Tc.Model.Test")]
4 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Model/LogLevel.cs:
--------------------------------------------------------------------------------
1 | namespace Mbc.Log4Tc.Model
2 | {
3 | public enum LogLevel
4 | {
5 | Trace = 0,
6 | Debug = 1,
7 | Info = 2,
8 | Warn = 3,
9 | Error = 4,
10 | Fatal = 5,
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Model/Mbc.Log4Tc.Model.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net8.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | all
14 | runtime; build; native; contentfiles; analyzers; buildtransitive
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Model/Message/MessageHoleToken.cs:
--------------------------------------------------------------------------------
1 | using Optional;
2 |
3 | namespace Mbc.Log4Tc.Model.Message
4 | {
5 | internal class MessageHoleToken : MessageTemplateToken
6 | {
7 | public MessageHoleToken(string label, int alignment, string format)
8 | {
9 | Label = label;
10 | Alignment = alignment;
11 | Format = format;
12 | if (int.TryParse(Label, out int index))
13 | {
14 | Index = index.Some();
15 | }
16 | else
17 | {
18 | Index = Option.None();
19 | }
20 | }
21 |
22 | public string Label { get; }
23 | public int Alignment { get; }
24 | public string Format { get; }
25 | public Option Index { get; }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Model/Message/MessageTemplateToken.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using System.Threading.Tasks;
5 |
6 | namespace Mbc.Log4Tc.Model.Message
7 | {
8 | internal abstract class MessageTemplateToken
9 | {
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Model/Message/MessageTextToken.cs:
--------------------------------------------------------------------------------
1 | namespace Mbc.Log4Tc.Model.Message
2 | {
3 | internal class MessageTextToken : MessageTemplateToken
4 | {
5 | public MessageTextToken(string text)
6 | {
7 | Text = text;
8 | }
9 |
10 | public string Text { get; }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Output.Graylog.Test/GelfDataTest.cs:
--------------------------------------------------------------------------------
1 | using FluentAssertions;
2 | using Xunit;
3 |
4 | namespace Mbc.Log4Tc.Output.Graylog.Test
5 | {
6 | public class GelfDataTest
7 | {
8 | [Fact]
9 | public void SerializeGelfData_ShouldMatchSpec()
10 | {
11 | // Arrange
12 | var gelf = new GelfData
13 | {
14 | Host = "example.org",
15 | ShortMessage = "A short message that helps you identify what is going on",
16 | FullMessage = "Backtrace here more stuff",
17 | Timestamp = 1385053862.3072M,
18 | Level = 1,
19 | };
20 |
21 | gelf.Add("user_id", 9001);
22 | gelf.Add("_some_info", "foo");
23 |
24 | // Act
25 | var json = gelf.ToJson();
26 |
27 | // Assert
28 | json.Should().Be("{\"version\":\"1.1\",\"host\":\"example.org\",\"short_message\":\"A short message that helps you identify what is going on\",\"full_message\":\"Backtrace here more stuff\",\"timestamp\":1385053862.3072,\"level\":1,\"_user_id\":9001,\"_some_info\":\"foo\"}");
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Output.Graylog.Test/Mbc.Log4Tc.Output.Graylog.Test.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net8.0
5 |
6 | false
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | all
15 | runtime; build; native; contentfiles; analyzers; buildtransitive
16 |
17 |
18 | all
19 | runtime; build; native; contentfiles; analyzers; buildtransitive
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 | all
30 | runtime; build; native; contentfiles; analyzers; buildtransitive
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Output.Graylog/AssemblyProperties.cs:
--------------------------------------------------------------------------------
1 | using System.Runtime.CompilerServices;
2 |
3 | [assembly:InternalsVisibleTo("Mbc.Log4Tc.Output.Graylog.Test")]
4 |
5 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Output.Graylog/GraylogLog4TcOutputFactory.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Extensions.Configuration;
2 | using Microsoft.Extensions.DependencyInjection;
3 | using System;
4 | using System.ComponentModel.DataAnnotations;
5 |
6 | namespace Mbc.Log4Tc.Output.Graylog
7 | {
8 | internal class GraylogLog4TcOutputFactory : IOutputFactory
9 | {
10 | public string ShortTypeName => "graylog";
11 |
12 | public OutputHandlerBase Create(IServiceProvider serviceProvider, IConfigurationSection outputConfiguration)
13 | {
14 | var config = new GraylogOutputSettings();
15 | outputConfiguration.Bind(config);
16 | Validator.ValidateObject(config, new ValidationContext(config));
17 | return ActivatorUtilities.CreateInstance(serviceProvider, config);
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Output.Graylog/GraylogLog4TcOutputPlugin.cs:
--------------------------------------------------------------------------------
1 | using Mbc.Log4Tc.Plugin;
2 | using Microsoft.Extensions.Configuration;
3 | using Microsoft.Extensions.DependencyInjection;
4 |
5 | namespace Mbc.Log4Tc.Output.Graylog
6 | {
7 | public class GraylogLog4TcOutputPlugin : IPlugin
8 | {
9 | public void ConfigureServices(IServiceCollection services, IConfiguration configuration)
10 | {
11 | services.AddSingleton();
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Output.Graylog/GraylogOutputSettings.cs:
--------------------------------------------------------------------------------
1 | namespace Mbc.Log4Tc.Output.Graylog
2 | {
3 | internal class GraylogOutputSettings
4 | {
5 | public string GraylogHostname { get; set; } = "localhost";
6 |
7 | public ushort GraylogPort { get; set; } = 12201;
8 |
9 | public GelfCompressionType GelfCompression { get; set; } = GelfCompressionType.Gzip;
10 |
11 | internal enum GelfCompressionType
12 | {
13 | None,
14 | Gzip,
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Output.Graylog/Mbc.Log4Tc.Output.Graylog.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net8.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | all
18 | runtime; build; native; contentfiles; analyzers; buildtransitive
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Output.InfluxDb/AssemblyProperties.cs:
--------------------------------------------------------------------------------
1 | using System.Runtime.CompilerServices;
2 |
3 | [assembly: InternalsVisibleTo("Mbc.Log4Tc.Output.InfluxDb.Test")]
4 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Output.InfluxDb/IInfluxPointFactory.cs:
--------------------------------------------------------------------------------
1 | using InfluxDB.Client.Writes;
2 | using Mbc.Log4Tc.Model;
3 |
4 | namespace Mbc.Log4Tc.Output.InfluxDb
5 | {
6 | internal interface IInfluxPointFactory
7 | {
8 | PointData CreatePoint(LogEntry logEntry);
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Output.InfluxDb/InfluxDbLog4TcOutputFactory.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Extensions.Configuration;
2 | using Microsoft.Extensions.DependencyInjection;
3 | using System;
4 | using System.ComponentModel.DataAnnotations;
5 |
6 | namespace Mbc.Log4Tc.Output.InfluxDb
7 | {
8 | public class InfluxDbLog4TcOutputFactory : IOutputFactory
9 | {
10 | public string ShortTypeName => "influxdb";
11 |
12 | public OutputHandlerBase Create(IServiceProvider serviceProvider, IConfigurationSection outputConfiguration)
13 | {
14 | var config = new InfluxDbOutputSettings();
15 |
16 | outputConfiguration.Bind(config);
17 | Validator.ValidateObject(config, new ValidationContext(config));
18 |
19 | return ActivatorUtilities.CreateInstance(serviceProvider, config);
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Output.InfluxDb/InfluxDbLog4TcOutputPlugin.cs:
--------------------------------------------------------------------------------
1 | using Mbc.Log4Tc.Plugin;
2 | using Microsoft.Extensions.Configuration;
3 | using Microsoft.Extensions.DependencyInjection;
4 |
5 | namespace Mbc.Log4Tc.Output.InfluxDb
6 | {
7 | public class InfluxDbLog4TcOutputPlugin : IPlugin
8 | {
9 | public void ConfigureServices(IServiceCollection services, IConfiguration configuration)
10 | {
11 | services.AddSingleton();
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Output.InfluxDb/InfluxDbOutputSettings.cs:
--------------------------------------------------------------------------------
1 | using System.ComponentModel.DataAnnotations;
2 |
3 | namespace Mbc.Log4Tc.Output.InfluxDb
4 | {
5 | public class InfluxDbOutputSettings
6 | {
7 | [Required]
8 | [Url]
9 | public string Url { get; set; }
10 |
11 | public string Username { get; set; }
12 |
13 | public string Password { get; set; }
14 |
15 | [Required]
16 | public string Database { get; set; }
17 |
18 | public string RetentionPolicy { get; set; }
19 |
20 | public int WriteBatchSize { get; set; } = 20;
21 |
22 | public int WriteFlushIntervalMillis { get; set; } = 1000;
23 |
24 | public InfluxFormat Format { get; set; } = InfluxFormat.Arguments;
25 |
26 | public int SyslogFacilityCode { get; set; } = 16;
27 |
28 | public enum InfluxFormat
29 | {
30 | Arguments,
31 | Syslog,
32 | }
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Output.InfluxDb/Mbc.Log4Tc.Output.InfluxDb.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net8.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | all
18 | runtime; build; native; contentfiles; analyzers; buildtransitive
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Output.NLog.Test/CommonNLogTests.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/source/Log4Tc/Mbc.Log4Tc.Output.NLog.Test/CommonNLogTests.cs
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Output.NLog/Mbc.Log4Tc.Output.NLog.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net8.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | all
19 | runtime; build; native; contentfiles; analyzers; buildtransitive
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Output.NLog/NLogLog4TcOutputConfiguration.cs:
--------------------------------------------------------------------------------
1 | namespace Mbc.Log4Tc.Output.NLog
2 | {
3 | public class NLogLog4TcOutputConfiguration
4 | {
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Output.NLog/NLogLog4TcOutputFactory.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Extensions.Configuration;
2 | using Microsoft.Extensions.DependencyInjection;
3 | using System;
4 |
5 | namespace Mbc.Log4Tc.Output.NLog
6 | {
7 | public class NLogLog4TcOutputFactory : IOutputFactory
8 | {
9 | public string ShortTypeName => "nlog";
10 |
11 | public OutputHandlerBase Create(IServiceProvider serviceProvider, IConfigurationSection outputConfiguration)
12 | {
13 | NLogLog4TcOutputInitializer.Setup();
14 |
15 | var config = new NLogLog4TcOutputConfiguration();
16 | outputConfiguration.Bind(config);
17 | return ActivatorUtilities.CreateInstance(serviceProvider, config);
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Output.NLog/NLogLog4TcOutputInitializer.cs:
--------------------------------------------------------------------------------
1 | using Mbc.Log4Tc.Model;
2 | using NLog;
3 | using NLog.Config;
4 | using System;
5 | using System.IO;
6 |
7 | namespace Mbc.Log4Tc.Output.NLog
8 | {
9 | public static class NLogLog4TcOutputInitializer
10 | {
11 | public static bool SetupDone { get; private set; }
12 |
13 | public static void Setup()
14 | {
15 | if (!SetupDone)
16 | {
17 | var path = Path.Combine(OsPaths.GetConfigBasePath(), "NLog.config");
18 | LogManager.Configuration = new XmlLoggingConfiguration(path);
19 | SetupDone = true;
20 | }
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Output.NLog/NLogLog4TcOutputPlugin.cs:
--------------------------------------------------------------------------------
1 | using Mbc.Log4Tc.Plugin;
2 | using Microsoft.Extensions.Configuration;
3 | using Microsoft.Extensions.DependencyInjection;
4 |
5 | namespace Mbc.Log4Tc.Output.NLog
6 | {
7 | public class NLogLog4TcOutputPlugin : IPlugin
8 | {
9 | public void ConfigureServices(IServiceCollection services, IConfiguration configuration)
10 | {
11 | services.AddSingleton();
12 |
13 | // Example see: https://blog.skrots.com/nlog-implementation-with-azure-application-insights/?feed_id=1833&_unique_id=64f62b11bebcc
14 | // See Application Insights logging adapters: https://github.com/microsoft/ApplicationInsights-dotnet/blob/c420e04562876791f27a61644760d7b7512832d9/LOGGING/README.md#nlog
15 | services.AddApplicationInsightsTelemetryWorkerService();
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Output.NLog/NLogTarget/readme.md:
--------------------------------------------------------------------------------
1 | # Info NLogTarget
2 |
3 | This is a copy of the Repository [ApplicationInsights-dotnet NLogTarget](https://github.com/microsoft/ApplicationInsights-dotnet/tree/2.22.0/LOGGING/src/NLogTarget) at version 2.22.0.
4 |
5 | The documentation is under: [NLOG - Application Insights logging adapter](https://github.com/microsoft/ApplicationInsights-dotnet/blob/c420e04562876791f27a61644760d7b7512832d9/LOGGING/README.md#nlog).
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Output.Sql/DbValueType.cs:
--------------------------------------------------------------------------------
1 | namespace Mbc.Log4Tc.Output.Sql
2 | {
3 | internal enum DbValueType
4 | {
5 | Null,
6 | Byte,
7 | Word,
8 | DWord,
9 | Real,
10 | LReal,
11 | SInt,
12 | Int,
13 | DInt,
14 | USInt,
15 | UInt,
16 | UDint,
17 | String,
18 | Bool,
19 | ULarge,
20 | Large,
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Output.Sql/Mbc.Log4Tc.Output.Sql.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net8.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | all
24 | runtime; build; native; contentfiles; analyzers; buildtransitive
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Output.Sql/SqlLog4TcOutputFactory.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Extensions.Configuration;
2 | using Microsoft.Extensions.DependencyInjection;
3 | using System;
4 | using System.ComponentModel.DataAnnotations;
5 |
6 | namespace Mbc.Log4Tc.Output.Sql
7 | {
8 | public class SqlLog4TcOutputFactory : IOutputFactory
9 | {
10 | public string ShortTypeName => "sql";
11 |
12 | public OutputHandlerBase Create(IServiceProvider serviceProvider, IConfigurationSection outputConfiguration)
13 | {
14 | var config = new SqlOutputSettings();
15 | outputConfiguration.Bind(config);
16 | Validator.ValidateObject(config, new ValidationContext(config));
17 |
18 | return ActivatorUtilities.CreateInstance(serviceProvider, config);
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Output.Sql/SqlLog4TcOutputPlugin.cs:
--------------------------------------------------------------------------------
1 | using Mbc.Log4Tc.Plugin;
2 | using Microsoft.Extensions.Configuration;
3 | using Microsoft.Extensions.DependencyInjection;
4 |
5 | namespace Mbc.Log4Tc.Output.Sql
6 | {
7 | public class SqlLog4TcOutputPlugin : IPlugin
8 | {
9 | public void ConfigureServices(IServiceCollection services, IConfiguration configuration)
10 | {
11 | services.AddSingleton();
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Output.Sql/SqlOutputSettings.cs:
--------------------------------------------------------------------------------
1 | using System.ComponentModel.DataAnnotations;
2 |
3 | namespace Mbc.Log4Tc.Output.Sql
4 | {
5 | internal class SqlOutputSettings
6 | {
7 | public enum DbDriver
8 | {
9 | MySql,
10 | Postgres,
11 | SqlServer,
12 | }
13 |
14 | public enum DbScheme
15 | {
16 | SimpleFlat,
17 | FullFlat,
18 | }
19 |
20 | [Required]
21 | public DbDriver Driver { get; set; }
22 |
23 | [Required]
24 | public string ConnectionString { get; set; }
25 |
26 | public DbScheme Scheme { get; set; } = DbScheme.SimpleFlat;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Output/IOutputFactory.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Extensions.Configuration;
2 | using System;
3 |
4 | namespace Mbc.Log4Tc.Output
5 | {
6 | ///
7 | /// A interface for factories which creates instances
8 | /// for specific outputs.
9 | ///
10 | public interface IOutputFactory
11 | {
12 | string ShortTypeName { get; }
13 |
14 | ///
15 | /// Creates the instance of this output.
16 | /// The service provider of the DI framework to inject objects for example logging.
17 | /// The output specific configuration section.
18 | ///
19 | OutputHandlerBase Create(IServiceProvider serviceProvider, IConfigurationSection outputConfiguration);
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Output/Mbc.Log4Tc.Output.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net8.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | all
23 | runtime; build; native; contentfiles; analyzers; buildtransitive
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Output/OutputExtensions.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Extensions.Configuration;
2 |
3 | namespace Mbc.Log4Tc.Service
4 | {
5 | public static class OutputExtensions
6 | {
7 | public static PluginBuilder AddOutputs(this PluginBuilder pluginBuilder, IConfiguration configuration)
8 | {
9 | // Aktivate all outputs present in the application config
10 | pluginBuilder.ActivateConfiguredOutputs(configuration);
11 |
12 | return pluginBuilder;
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Output/OutputHandlerBase.cs:
--------------------------------------------------------------------------------
1 | using Mbc.Log4Tc.Model;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Threading.Tasks;
5 |
6 | namespace Mbc.Log4Tc.Output
7 | {
8 | ///
9 | /// Basisklasse für alle Outputs. Je nach Art der Verarbeitung muss die ableitende Klasse
10 | /// oder
11 | /// überschreiben.
12 | ///
13 | public abstract class OutputHandlerBase
14 | {
15 | public async virtual Task ProcesLogEntriesAsync(IEnumerable logEntries)
16 | {
17 | foreach (var logEntry in logEntries)
18 | {
19 | await ProcesLogEntryAsync(logEntry);
20 | }
21 | }
22 |
23 | protected virtual Task ProcesLogEntryAsync(LogEntry logEntry)
24 | {
25 | throw new NotImplementedException();
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Plugin/IPlugin.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Extensions.Configuration;
2 | using Microsoft.Extensions.DependencyInjection;
3 |
4 | namespace Mbc.Log4Tc.Plugin
5 | {
6 | public interface IPlugin
7 | {
8 | void ConfigureServices(IServiceCollection services, IConfiguration configuration);
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Plugin/Log4TcPluginAttribute.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Mbc.Log4Tc.Plugin
4 | {
5 | [AttributeUsage(AttributeTargets.Assembly)]
6 | public class Log4TcPluginAttribute : Attribute
7 | {
8 | public Log4TcPluginAttribute()
9 | {
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Plugin/Mbc.Log4Tc.Plugin.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net8.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | all
15 | runtime; build; native; contentfiles; analyzers; buildtransitive
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Plugin/PluginBuilder.cs:
--------------------------------------------------------------------------------
1 | using Mbc.Log4Tc.Plugin;
2 | using Microsoft.Extensions.Configuration;
3 | using Microsoft.Extensions.DependencyInjection;
4 | using System.Collections.Generic;
5 |
6 | namespace Mbc.Log4Tc.Service
7 | {
8 | public class PluginBuilder
9 | {
10 | private IServiceCollection _services;
11 |
12 | public PluginBuilder(IServiceCollection services, IEnumerable plugins)
13 | {
14 | _services = services;
15 | Plugins = plugins;
16 | }
17 |
18 | public IEnumerable Plugins { get; set; }
19 |
20 | public void ActivateConfiguredOutputs(IConfiguration configuration)
21 | {
22 | foreach (var plugin in Plugins)
23 | {
24 | plugin.ConfigureServices(_services, configuration);
25 | }
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Plugin/PluginExtensions.cs:
--------------------------------------------------------------------------------
1 | using Mbc.Log4Tc.Output;
2 | using Mbc.Log4Tc.Plugin;
3 | using Microsoft.Extensions.DependencyInjection;
4 | using System;
5 | using System.Collections.Generic;
6 | using System.Linq;
7 |
8 | namespace Mbc.Log4Tc.Service
9 | {
10 | public static class PluginExtensions
11 | {
12 | public static PluginBuilder AddPlugins(this IServiceCollection services, string pluginFolder)
13 | {
14 | // Check Valid Parameters
15 | if (!Uri.IsWellFormedUriString(pluginFolder, UriKind.RelativeOrAbsolute))
16 | {
17 | throw new ApplicationException($"The plugin folder {pluginFolder} is not well formed.");
18 | }
19 |
20 | // Load the Plugin Assemblies and Create Plugin instance
21 | IEnumerable plugins = PluginLoader.LoadPlugins(pluginFolder).ToList();
22 |
23 | return new PluginBuilder(services, plugins);
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Receiver/AdsLogReceiverExtensions.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Extensions.DependencyInjection;
2 | using Microsoft.Extensions.DependencyInjection.Extensions;
3 |
4 | namespace Mbc.Log4Tc.Receiver
5 | {
6 | public static class AdsLogReceiverExtensions
7 | {
8 | ///
9 | /// Register TwinCat 3 as a
10 | ///
11 | public static IServiceCollection AddLog4TcAdsLogReceiver(this IServiceCollection services)
12 | {
13 | services.AddSingleton();
14 | services.AddSingleton();
15 | services.TryAddEnumerable(ServiceDescriptor.Singleton(x => x.GetRequiredService()));
16 | services.AddHostedService();
17 | return services;
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Receiver/ILogReceiver.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Mbc.Log4Tc.Receiver
4 | {
5 | public interface ILogReceiver
6 | {
7 | event EventHandler LogsReceived;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Receiver/LogEntryEventArgs.cs:
--------------------------------------------------------------------------------
1 | using Mbc.Log4Tc.Model;
2 | using System;
3 | using System.Collections.Generic;
4 |
5 | namespace Mbc.Log4Tc.Receiver
6 | {
7 | public class LogEntryEventArgs : EventArgs
8 | {
9 | public LogEntryEventArgs(List logEntries)
10 | {
11 | LogEntries = logEntries;
12 | }
13 |
14 | public List LogEntries { get; }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Receiver/Mbc.Log4Tc.Receiver.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | net8.0
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 | all
22 | runtime; build; native; contentfiles; analyzers; buildtransitive
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Service/InstallService.ps1:
--------------------------------------------------------------------------------
1 | $serviceName = "Mbc.Log4Tc.Service"
2 | $servicePath = $PSScriptRoot
3 |
4 | <# Permission for user execution -> add -Credential $serviceUser
5 | $serviceUser = "$env:ComputerName\$env:UserName"
6 | $acl = Get-Acl "./"
7 | $aclRuleArgs = $serviceUser, "Read,Write,ReadAndExecute", "ContainerInherit,ObjectInherit", "None", "Allow"
8 | $accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule($aclRuleArgs)
9 | $acl.SetAccessRule($accessRule)
10 | $acl | Set-Acl "./"
11 | #>
12 |
13 | # Install
14 | New-Service -Name $serviceName -BinaryPathName "$servicePath\$serviceName.exe --service" -Description "mbc Log4Tc service" -DisplayName $serviceName -StartupType Automatic -DependsOn "TcSysSrv"
15 |
16 | # Start
17 | Start-Service -Name $serviceName
18 | Get-Service -Name $serviceName
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Service/Properties/launchSettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "profiles": {
3 | "Mbc.Log4Tc.Service-Development": {
4 | "commandName": "Project",
5 | "commandLineArgs": "--localconfig",
6 | "environmentVariables": {
7 | "DOTNET_ENVIRONMENT": "Development"
8 | }
9 | },
10 | "Mbc.Log4Tc.Service-Development-appdata-config": {
11 | "commandName": "Project",
12 | "commandLineArgs": "",
13 | "environmentVariables": {
14 | "DOTNET_ENVIRONMENT": "Development"
15 | }
16 | },
17 | "Mbc.Log4Tc.Service-Productive": {
18 | "commandName": "Project",
19 | "commandLineArgs": "--service",
20 | "environmentVariables": {
21 | "DOTNET_ENVIRONMENT": "Production"
22 | }
23 | }
24 | }
25 | }
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Service/UninstallService.ps1:
--------------------------------------------------------------------------------
1 | $serviceName = "Mbc.Log4Tc.Service"
2 | $servicePath = Get-Location
3 |
4 | # Stop
5 | Stop-Service -Name $serviceName
6 |
7 | # Remove
8 | sc.exe delete $serviceName
9 | # version 6: Remove-Service -Name $serviceName
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Service/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Information",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Service/appsettings.Production.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Information",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Service/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | },
9 | "Outputs": [
10 | {
11 | "Type": "nlog"
12 | }
13 | ]
14 | }
15 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Service/appsettingsInflux.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | },
9 | "Outputs": [
10 | {
11 | "Type": "influxdb",
12 | "Config": {
13 | "Url": "http://localhost:8086",
14 | "Database": "log4tc",
15 | "Format": "syslog"
16 | }
17 | },
18 | {
19 | "Type": "influxdb",
20 | "Filter": { "Logger": "FB_LogTaskCycleTime" },
21 | "Config": {
22 | "Url": "http://localhost:8086",
23 | "Database": "cycletime",
24 | "Format": "arguments"
25 | }
26 | },
27 | {
28 | "Type": "influxdb",
29 | "Filter": { "Logger": "PRG_SimulatedControlPlant.Values" },
30 | "Config": {
31 | "Url": "http://localhost:8086",
32 | "Database": "controlplant",
33 | "Format": "arguments"
34 | }
35 | }
36 | ]
37 | }
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Service/appsettingsSample.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | },
9 | "Outputs": [
10 | {
11 | "Type": "nlog"
12 | }
13 | ]
14 | }
15 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Service/appsettingsSql.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | },
9 | "Outputs": [
10 | {
11 | "Type": "sql",
12 | "Config": {
13 | "ConnectionString": "Server=mbc-srv02;Port=13306;Database=log4tc;Uid=root;Pwd=root;"
14 | }
15 | }
16 | ]
17 | }
18 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Setup.Wix/Fragments/Common/Log4TcCommonStartmenu.wxs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Setup.Wix/Fragments/Log4TcServiceFeature/Log4TcServiceOutputFiles.wxs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Setup.Wix/Fragments/Log4TcTwinCatLibFeature/Log4TcTwinCatLib.wxs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Setup.Wix/Fragments/Log4TcTwinCatLibFeature/Log4TcTwinCatLibGettingStarted.wxs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Setup.Wix/Fragments/Log4TcTwinCatLibFeature/mbc_engineering_log4tc.tmc:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | mbc engineering
5 |
6 |
7 |
8 | {9BDDB874-8F39-4D26-90BB-4237ED0644FB}
9 | {DE17856A-0074-30CC-E016-6EAA651C27C7}
10 | 27a353f2-6232-4ebd-aa04-4c45bab0d528
11 | TC3 Log4TC OEM
12 | Log-Library for TC3 by mbc-engineering
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Setup.Wix/Includes/DefinitionsPlatform.wxi:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Setup.Wix/Package.en-us.wxl:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Setup.Wix/Resources/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/source/Log4Tc/Mbc.Log4Tc.Setup.Wix/Resources/favicon.ico
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Setup.Wix/Resources/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/source/Log4Tc/Mbc.Log4Tc.Setup.Wix/Resources/favicon.png
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Setup.Wix/Resources/log4TcBackground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/source/Log4Tc/Mbc.Log4Tc.Setup.Wix/Resources/log4TcBackground.png
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Setup.Wix/Resources/mbcBackground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/source/Log4Tc/Mbc.Log4Tc.Setup.Wix/Resources/mbcBackground.png
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Setup.Wix/Resources/mbcBanner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/source/Log4Tc/Mbc.Log4Tc.Setup.Wix/Resources/mbcBanner.png
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.SmokeTest/SmokeTest.cs:
--------------------------------------------------------------------------------
1 | using FluentAssertions;
2 | using System;
3 | using System.Threading;
4 | using TwinCAT.Ads;
5 | using Xunit;
6 |
7 | namespace Mbc.Log4Tc.SmokeTest
8 | {
9 | public class SmokeTest : IDisposable
10 | {
11 | private readonly PlcControl _plcControl;
12 | private readonly Log4TcService _log4TcService;
13 |
14 | public SmokeTest()
15 | {
16 | _plcControl = new PlcControl(AmsAddress.Parse("172.16.23.20.1.1:853"));
17 | _log4TcService = new Log4TcService();
18 | _log4TcService.Start();
19 | }
20 |
21 | public void Dispose()
22 | {
23 | _log4TcService.Stop();
24 | _plcControl.Dispose();
25 | }
26 |
27 | [Fact(Skip = "not yet finished")]
28 | public void Test1()
29 | {
30 | _plcControl.Stop();
31 | _plcControl.Reset();
32 | _plcControl.Start();
33 |
34 | Thread.Sleep(2000);
35 |
36 | var logs = _log4TcService.LoggedEntries;
37 |
38 | logs.Should().HaveCount(1);
39 | logs[0].Message.Should().Be("F_Log");
40 | }
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.SmokeTest/TestRecordingOutput.cs:
--------------------------------------------------------------------------------
1 | using Mbc.Log4Tc.Model;
2 | using Mbc.Log4Tc.Output;
3 | using System.Collections.Generic;
4 | using System.Threading.Tasks;
5 |
6 | namespace Mbc.Log4Tc.SmokeTest
7 | {
8 | public class TestRecordingOutput : OutputHandlerBase
9 | {
10 | private readonly List loggedEntries = new List();
11 |
12 | public string Name => "TestOutput";
13 |
14 | public List LoggedEntries => loggedEntries;
15 |
16 | protected override Task ProcesLogEntryAsync(LogEntry logEntry)
17 | {
18 | loggedEntries.Add(logEntry);
19 | return Task.CompletedTask;
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Utils/DataAnnotations/TypeClassValidationAttribute.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.ComponentModel.DataAnnotations;
3 |
4 | namespace Mbc.Log4Tc.Service.DataAnnotations
5 | {
6 | [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false)]
7 | public sealed class TypeClassValidationAttribute : ValidationAttribute
8 | {
9 | public override bool IsValid(object value)
10 | {
11 | if (value == null)
12 | return false;
13 |
14 | string clazz = value.ToString();
15 | var type = Type.GetType(clazz, false);
16 |
17 | return type != null;
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/source/Log4Tc/Mbc.Log4Tc.Utils/Mbc.Log4Tc.Utils.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net8.0
5 |
6 |
7 |
8 |
9 | all
10 | runtime; build; native; contentfiles; analyzers; buildtransitive
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/source/Log4Tc/stylecop.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json",
3 | "settings": {
4 | "orderingRules": {
5 | "usingDirectivesPlacement": "outsideNamespace",
6 | "systemUsingDirectivesFirst": false
7 | },
8 | "documentationRules": {
9 | "documentationCulture": "en-US",
10 | "documentInterfaces": false,
11 | "documentExposedElements": false
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/source/TwinCat_Examples/.gitignore:
--------------------------------------------------------------------------------
1 | **/*.tpy
2 | **/_Libraries/
3 | *.suo
4 | LineIDs.dbg
5 | *.tmc
6 | _CompileInfo/
7 | _Boot/
8 | TrialLicense.tclrs
9 | *.~u
10 |
11 |
--------------------------------------------------------------------------------
/source/TwinCat_Examples/GettingStarted/.gitignore:
--------------------------------------------------------------------------------
1 | LineIDs.dbg
2 |
--------------------------------------------------------------------------------
/source/TwinCat_Examples/GettingStarted/A_SimpleLogMessage/MAIN.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/source/TwinCat_Examples/GettingStarted/A_SimpleLogMessage/PlcTask.TcTTO:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 10000
6 | 20
7 |
8 | MAIN
9 |
10 | {342096fa-e654-4525-ac8e-5f39ae6ece42}
11 | {4bc24810-b0af-499b-96cb-37b8c2952a59}
12 | {5f6606ee-d6fc-4779-8c76-e015a2528eb5}
13 | {548ecf34-1875-4421-b4d4-bc133b255a03}
14 | {45665651-45da-49cf-8e87-ad4c389b4214}
15 |
16 |
--------------------------------------------------------------------------------
/source/TwinCat_Examples/GettingStarted/B_LogMessageWithArg/MAIN.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/source/TwinCat_Examples/GettingStarted/B_LogMessageWithArg/PlcTask.TcTTO:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 10000
6 | 20
7 |
8 | MAIN
9 |
10 | {342096fa-e654-4525-ac8e-5f39ae6ece42}
11 | {4bc24810-b0af-499b-96cb-37b8c2952a59}
12 | {5f6606ee-d6fc-4779-8c76-e015a2528eb5}
13 | {548ecf34-1875-4421-b4d4-bc133b255a03}
14 | {45665651-45da-49cf-8e87-ad4c389b4214}
15 |
16 |
--------------------------------------------------------------------------------
/source/TwinCat_Examples/GettingStarted/C_LogWithLogger/MAIN.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
13 |
14 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/source/TwinCat_Examples/GettingStarted/C_LogWithLogger/PlcTask.TcTTO:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 10000
6 | 20
7 |
8 | MAIN
9 |
10 | {342096fa-e654-4525-ac8e-5f39ae6ece42}
11 | {4bc24810-b0af-499b-96cb-37b8c2952a59}
12 | {5f6606ee-d6fc-4779-8c76-e015a2528eb5}
13 | {548ecf34-1875-4421-b4d4-bc133b255a03}
14 | {45665651-45da-49cf-8e87-ad4c389b4214}
15 |
16 |
--------------------------------------------------------------------------------
/source/TwinCat_Examples/GettingStarted/D_LogWithContext/MAIN.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
13 |
14 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/source/TwinCat_Examples/GettingStarted/D_LogWithContext/PlcTask.TcTTO:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 10000
6 | 20
7 |
8 | MAIN
9 |
10 | {342096fa-e654-4525-ac8e-5f39ae6ece42}
11 | {4bc24810-b0af-499b-96cb-37b8c2952a59}
12 | {5f6606ee-d6fc-4779-8c76-e015a2528eb5}
13 | {548ecf34-1875-4421-b4d4-bc133b255a03}
14 | {45665651-45da-49cf-8e87-ad4c389b4214}
15 |
16 |
--------------------------------------------------------------------------------
/source/TwinCat_Examples/GettingStarted/E_StructuredLogging/MAIN.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
15 |
16 | fPrevTemp THEN
33 | fPrevTemp := fTemp;
34 |
35 | F_LogLA1C(
36 | E_LogLevel.eInfo,
37 | sLogger,
38 | 'Temperatur {temperature}',
39 | fTemp,
40 | F_LogContext().AddBool('csv', TRUE)
41 | );
42 | END_IF
43 |
44 | PRG_TaskLog.Call();]]>
45 |
46 |
47 |
--------------------------------------------------------------------------------
/source/TwinCat_Examples/GettingStarted/E_StructuredLogging/PlcTask.TcTTO:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 10000
6 | 20
7 |
8 | MAIN
9 |
10 | {a814d218-39f3-421e-a9ab-70fc7383ba8b}
11 | {179d9b3c-65f5-4001-b071-383c1d10eccf}
12 | {5e7fee4d-22ce-4d10-8540-1e7986ef6f8d}
13 | {acac62c1-ff5e-4f97-91fb-7b05f351e5c8}
14 | {ba4e49b9-a15b-4320-b757-31aaa95fc90f}
15 |
16 |
--------------------------------------------------------------------------------
/source/TwinCat_Examples/GettingStarted/GettingStarted.tsproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | PlcTask
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/source/TwinCat_Examples/GettingStarted/_Config/PLC/A_SimpleLogMessage.xti:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | A_SimpleLogMessage Instance
6 | {08500001-0000-0000-F000-000000000064}
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/source/TwinCat_Examples/GettingStarted/_Config/PLC/B_LogMessageWithArg.xti:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | B_LogMessageWithArg Instance
6 | {08500001-0000-0000-F000-000000000064}
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/source/TwinCat_Examples/GettingStarted/_Config/PLC/C_LogWithLogger.xti:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | C_LogWithLogger Instance
6 | {08500001-0000-0000-F000-000000000064}
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/source/TwinCat_Examples/GettingStarted/_Config/PLC/D_LogWithContext.xti:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | D_LogWithContext Instance
6 | {08500001-0000-0000-F000-000000000064}
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/source/TwinCat_Examples/GettingStarted/_Config/PLC/E_StructuredLogging.xti:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | E_StructuredLogging Instance
6 | {08500001-0000-0000-F000-000000000064}
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/source/TwinCat_Examples/GettingStarted/_Config/PLC/LoggingExample.xti:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | LoggingExample Instance
6 | {08500001-0000-0000-F000-000000000064}
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/source/TwinCat_Examples/README.md:
--------------------------------------------------------------------------------
1 | # log4TC
2 | Examples for using the log4TC Library in a TwinCat 3.1 Environment
3 |
--------------------------------------------------------------------------------
/source/TwinCat_Examples/graylog/Plc/Plc.tsproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | PlcTask
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/source/TwinCat_Examples/graylog/Plc/Plc1/MAIN.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/source/TwinCat_Examples/graylog/Plc/Plc1/PRG_SimulateLoad.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
13 | fRandom);
14 |
15 | FOR nIdx := 0 TO LREAL_TO_UDINT(fRandom * 10000) + 10000 DO
16 | fResult := SIN(UDINT_TO_REAL(nIdx));
17 | END_FOR]]>
18 |
19 |
20 |
--------------------------------------------------------------------------------
/source/TwinCat_Examples/graylog/Plc/Plc1/PRG_SimulateLogs.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 | 0.95 THEN
14 | IF fbRand.Num > 0.99 THEN
15 | nError := LREAL_TO_INT((1 - fbRand.Num) * 10000);
16 | F_LogLA1(E_LogLevel.eWarn, 'PRG_SimulatedLogs', 'Something bad happens. ErrorCode={code}', nError);
17 | ELSE
18 | F_LogL(E_LogLevel.eInfo, 'PRG_SimulatedLogs', 'Execution succeeded.');
19 | END_IF
20 | END_IF]]>
21 |
22 |
23 |
--------------------------------------------------------------------------------
/source/TwinCat_Examples/graylog/Plc/Plc1/PlcTask.TcTTO:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 10000
6 | 20
7 |
8 | MAIN
9 |
10 | {db42d9ad-7178-443c-8288-6b8efdfb6ff0}
11 | {563ae66c-724a-4ec1-9fa9-b3ba2c3fa401}
12 | {208e69fb-2c0a-4939-b699-39f352e49844}
13 | {0b90ae05-4b44-44fa-ac09-3eaab1aa69ff}
14 | {c6e0da97-7d1a-49fc-88e9-6b02cd263901}
15 |
16 |
17 |
--------------------------------------------------------------------------------
/source/TwinCat_Examples/graylog/Plc/_Config/PLC/Plc1.xti:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Plc1 Instance
6 | {08500001-0000-0000-F000-000000000064}
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/source/TwinCat_Examples/graylog/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | },
9 | "Outputs": [
10 | {
11 | "Type": "graylog",
12 | "Config": {
13 | "GraylogHostname": "localhost"
14 | }
15 | }
16 | ]
17 | }
18 |
--------------------------------------------------------------------------------
/source/TwinCat_Examples/graylog/assets/graylog_add_to_query.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/source/TwinCat_Examples/graylog/assets/graylog_add_to_query.png
--------------------------------------------------------------------------------
/source/TwinCat_Examples/graylog/assets/graylog_message_detail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/source/TwinCat_Examples/graylog/assets/graylog_message_detail.png
--------------------------------------------------------------------------------
/source/TwinCat_Examples/graylog/assets/graylog_search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/source/TwinCat_Examples/graylog/assets/graylog_search.png
--------------------------------------------------------------------------------
/source/TwinCat_Examples/graylog/assets/input_settings_graylog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/source/TwinCat_Examples/graylog/assets/input_settings_graylog.png
--------------------------------------------------------------------------------
/source/TwinCat_Examples/influx_on_beckhoff-rt-linux/.gitignore:
--------------------------------------------------------------------------------
1 | data
2 |
--------------------------------------------------------------------------------
/source/TwinCat_Examples/influx_on_beckhoff-rt-linux/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | },
9 | "Outputs": [
10 | {
11 | "Type": "influxdb",
12 | "Config": {
13 | "Url": "http://localhost:8086",
14 | "Database": "log4tc",
15 | "Format": "syslog"
16 | }
17 | },
18 | {
19 | "Type": "influxdb",
20 | "Filter": { "Logger": "FB_LogTaskCycleTime" },
21 | "Config": {
22 | "Url": "http://localhost:8086",
23 | "Database": "cycletime",
24 | "Format": "arguments"
25 | }
26 | },
27 | {
28 | "Type": "influxdb",
29 | "Filter": { "Logger": "PRG_SimulatedControlPlant.Values" },
30 | "Config": {
31 | "Url": "http://localhost:8086",
32 | "Database": "controlplant",
33 | "Format": "arguments"
34 | }
35 | }
36 | ]
37 | }
--------------------------------------------------------------------------------
/source/TwinCat_Examples/influx_on_beckhoff-rt-linux/initdb.iql:
--------------------------------------------------------------------------------
1 | CREATE DATABASE "log4tc";
2 | CREATE DATABASE "cycletime";
3 | CREATE DATABASE "controlplant";
--------------------------------------------------------------------------------
/source/TwinCat_Examples/influx_with_message/Plc/Plc.tsproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | PlcTask
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/source/TwinCat_Examples/influx_with_message/Plc/Plc1/MAIN.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/source/TwinCat_Examples/influx_with_message/Plc/Plc1/PRG_SimulateLoad.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
13 | fRandom);
14 |
15 | FOR nIdx := 0 TO LREAL_TO_UDINT(fRandom * 10000) + 10000 DO
16 | fResult := SIN(UDINT_TO_REAL(nIdx));
17 | END_FOR]]>
18 |
19 |
20 |
--------------------------------------------------------------------------------
/source/TwinCat_Examples/influx_with_message/Plc/Plc1/PRG_SimulateLogs.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 | 0.95 THEN
14 | IF fbRand.Num > 0.99 THEN
15 | nError := LREAL_TO_INT((1 - fbRand.Num) * 10000);
16 | F_LogLA1(E_LogLevel.eWarn, 'PRG_SimulatedLogs', 'Something bad happens. ErrorCode={code}', nError);
17 | ELSE
18 | F_LogL(E_LogLevel.eInfo, 'PRG_SimulatedLogs', 'Execution succeeded.');
19 | END_IF
20 | END_IF]]>
21 |
22 |
23 |
--------------------------------------------------------------------------------
/source/TwinCat_Examples/influx_with_message/Plc/Plc1/PlcTask.TcTTO:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 10000
6 | 20
7 |
8 | MAIN
9 |
10 | {db42d9ad-7178-443c-8288-6b8efdfb6ff0}
11 | {563ae66c-724a-4ec1-9fa9-b3ba2c3fa401}
12 | {208e69fb-2c0a-4939-b699-39f352e49844}
13 | {0b90ae05-4b44-44fa-ac09-3eaab1aa69ff}
14 | {c6e0da97-7d1a-49fc-88e9-6b02cd263901}
15 |
16 |
17 |
--------------------------------------------------------------------------------
/source/TwinCat_Examples/influx_with_message/Plc/Plc1/Utils/FB_PT1.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
17 |
18 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/source/TwinCat_Examples/influx_with_message/Plc/Plc1/Utils/FB_Plant.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
16 |
17 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/source/TwinCat_Examples/influx_with_message/Plc/_Config/PLC/Plc1.xti:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Plc1 Instance
6 | {08500001-0000-0000-F000-000000000064}
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/source/TwinCat_Examples/influx_with_message/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft": "Warning",
6 | "Microsoft.Hosting.Lifetime": "Information"
7 | }
8 | },
9 | "Outputs": [
10 | {
11 | "Type": "influxdb",
12 | "Config": {
13 | "Url": "http://localhost:8086",
14 | "Database": "log4tc",
15 | "Format": "syslog"
16 | }
17 | },
18 | {
19 | "Type": "influxdb",
20 | "Filter": { "Logger": "FB_LogTaskCycleTime" },
21 | "Config": {
22 | "Url": "http://localhost:8086",
23 | "Database": "cycletime",
24 | "Format": "arguments"
25 | }
26 | },
27 | {
28 | "Type": "influxdb",
29 | "Filter": { "Logger": "PRG_SimulatedControlPlant.Values" },
30 | "Config": {
31 | "Url": "http://localhost:8086",
32 | "Database": "controlplant",
33 | "Format": "arguments"
34 | }
35 | }
36 | ]
37 | }
--------------------------------------------------------------------------------
/source/TwinCat_Examples/influx_with_message/assets/chronograf_charts.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/source/TwinCat_Examples/influx_with_message/assets/chronograf_charts.png
--------------------------------------------------------------------------------
/source/TwinCat_Examples/influx_with_message/assets/chronograf_log_viewer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/source/TwinCat_Examples/influx_with_message/assets/chronograf_log_viewer.png
--------------------------------------------------------------------------------
/source/TwinCat_Examples/influx_with_message/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: '3'
2 |
3 | services:
4 | influxdb:
5 | image: influxdb:1.8-alpine
6 | volumes:
7 | - influxdb:/var/lib/influxdb
8 | - ./initdb.iql:/docker-entrypoint-initdb.d/initdb.iql
9 | ports:
10 | - 8086:8086
11 | chronograf:
12 | image: chronograf:1.8-alpine
13 | environment:
14 | INFLUXDB_URL: http://influxdb:8086
15 | ports:
16 | - 8888:8888
17 | links:
18 | - influxdb
19 | volumes:
20 | - chronograf:/var/lib/chronograf
21 |
22 | volumes:
23 | influxdb:
24 | chronograf:
25 |
--------------------------------------------------------------------------------
/source/TwinCat_Examples/influx_with_message/initdb.iql:
--------------------------------------------------------------------------------
1 | CREATE DATABASE "log4tc";
2 | CREATE DATABASE "cycletime";
3 | CREATE DATABASE "controlplant";
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/.gitignore:
--------------------------------------------------------------------------------
1 | # TwinCAT 3 projects
2 | LineIDs.dbg
3 | **/_Libraries
4 | *.tmc
5 | *.compileinfo
6 | *.tizip
7 | *.project.~u
8 | *.tpy
9 | **/_Boot
10 | /TwinCat/Samples/Mbc.Tc3.Pcs.Samples/*.tclrs
11 | *.~u
12 | *.dbg.bak
13 | *.tsproj.bak
14 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/_Config/PLC/log4Tc_SmokeTest.xti:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | log4Tc_SmokeTest Instance
6 | {08500001-0000-0000-F000-000000000064}
7 |
8 |
9 | 0
10 | PlcTask
11 |
12 | #x02010040
13 |
14 | 21
15 | 10000000
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/_Config/PLC/log4Tc_SmokeTest.xti.bak:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | log4Tc_SmokeTest Instance
6 | {08500001-0000-0000-F000-000000000064}
7 |
8 |
9 | 0
10 | PlcTask
11 |
12 | #x02010040
13 |
14 | 21
15 | 10000000
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/_Config/PLC/log4Tc_Tester.xti:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | log4Tc_Tester Instance
6 | {08500001-0000-0000-F000-000000000064}
7 |
8 |
9 | 0
10 | PlcTask
11 |
12 | #x02010030
13 |
14 | 20
15 | 1000000
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/_Config/PLC/log4Tc_Tester.xti.bak:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | log4Tc_Tester Instance
6 | {08500001-0000-0000-F000-000000000064}
7 |
8 |
9 | 0
10 | PlcTask
11 |
12 | #x02010030
13 |
14 | 20
15 | 1000000
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/_Config/PLC/mbc_Log4TC.xti.bak:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | mbc_Log4TC Instance
6 | {08500001-0000-0000-F000-000000000064}
7 |
8 |
9 | 0
10 | PlcTask
11 |
12 | #x02010030
13 |
14 | 20
15 | 1000000
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/_Config/PLC/mbc_log4tc.xti:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | mbc_Log4TC Instance
6 | {08500001-0000-0000-F000-000000000064}
7 |
8 |
9 | 0
10 | PlcTask
11 |
12 | #x02010030
13 |
14 | 20
15 | 1000000
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/log4Tc_SmokeTest/.gitignore:
--------------------------------------------------------------------------------
1 | LineIDs.dbg
2 | _Libraries
3 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/log4Tc_SmokeTest/POUs/MAIN.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/log4Tc_SmokeTest/PlcTask.TcTTO:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 10000
6 | 21
7 |
8 | MAIN
9 |
10 | {211d1b80-370c-495e-8cba-0c0b992bc4df}
11 | {0055acb3-a0d3-4027-8240-2f186e273406}
12 | {2a473c51-6643-404f-bc49-35ac438ee59a}
13 | {207ef9a4-bd98-467e-8810-1c42fd8c513f}
14 | {a4ca66cb-3fa0-4fc7-81b4-0b3858a382f5}
15 |
16 |
17 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/log4Tc_Tester/.gitignore:
--------------------------------------------------------------------------------
1 | LineIDs.dbg
2 | _Libraries
3 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/log4Tc_Tester/GVLs/GVL.TcGVL:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/log4Tc_Tester/POUs/CheckBounds.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 | upper) THEN
16 | CheckBounds := upper;
17 | F_LogLA3(E_LogLevel.eFatal, 'CheckBounds', 'Check bounds exception: {index} {lower} {upper}', index, lower, upper);
18 | ELSE
19 | CheckBounds := index;
20 | END_IF
21 | {flow}
22 | ]]>
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/log4Tc_Tester/POUs/CheckLRangeSigned.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 | upper) THEN
15 | CheckLRangeSigned := upper;
16 | F_LogLA3(E_LogLevel.eFatal, 'CheckLRangeSigned', 'Check LINT range signed exception: {value} {lower} {upper}', value, lower, upper);
17 | ELSE
18 | CheckLRangeSigned := value;
19 | END_IF
20 | {flow}
21 | ]]>
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/log4Tc_Tester/POUs/CheckLRangeUnsigned.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 | upper) THEN
15 | CheckLRangeUnsigned := upper;
16 | F_LogLA3(E_LogLevel.eFatal, 'CheckLRangeUnsigned', 'Check ULINT range unsigned exception: {value} {lower} {upper}', value, lower, upper);
17 | ELSE
18 | CheckLRangeUnsigned := value;
19 | END_IF
20 | {flow}
21 | ]]>
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/log4Tc_Tester/POUs/CheckPointer.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
13 |
14 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/log4Tc_Tester/POUs/CheckRangeSigned.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 | upper) THEN
15 | CheckRangeSigned := upper;
16 | F_LogLA3(E_LogLevel.eFatal, 'CheckRangeSigned', 'Check DINT range signed exception: {value} {lower} {upper}', value, lower, upper);
17 | ELSE
18 | CheckRangeSigned := value;
19 | END_IF
20 | {flow}]]>
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/log4Tc_Tester/POUs/CheckRangeUnsigned.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 | upper) THEN
15 | CheckRangeUnsigned := upper;
16 | F_LogLA3(E_LogLevel.eFatal, 'CheckRangeUnsigned', 'Check UDINT range unsigned exception: {value} {lower} {upper}', value, lower, upper);
17 | ELSE
18 | CheckRangeUnsigned := value;
19 | END_IF
20 | {flow}]]>
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/log4Tc_Tester/POUs/F_FUN.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
17 |
18 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/log4Tc_Tester/POUs/MAIN.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
19 |
20 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/log4Tc_Tester/PlcTask.TcTTO:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 1000
6 | 20
7 |
8 | MAIN
9 |
10 | {8f885ea9-c60a-4c49-9473-9740fcb7aae8}
11 | {fece5986-d77b-4a6f-9029-3e6aeff18286}
12 | {55c39c09-1b73-49b6-9b14-96f161271fbe}
13 | {92dfa0c1-7e1a-4c63-aa9f-d07b96d69e8c}
14 | {33fcc9bb-3d92-4935-964f-b3cd6c4fb716}
15 |
16 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/log4Tc_Tester/_Libraries/beckhoff automation gmbh/tc2_standard/3.3.2.0/tc2_standard.compiled-library:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/source/TwinCat_Lib/log4tc/log4tc/log4Tc_Tester/_Libraries/beckhoff automation gmbh/tc2_standard/3.3.2.0/tc2_standard.compiled-library
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/log4Tc_Tester/_Libraries/beckhoff automation gmbh/tc2_system/3.4.21.0/tc2_system.compiled-library:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/source/TwinCat_Lib/log4tc/log4tc/log4Tc_Tester/_Libraries/beckhoff automation gmbh/tc2_system/3.4.21.0/tc2_system.compiled-library
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/log4Tc_Tester/_Libraries/beckhoff automation gmbh/tc2_utilities/3.3.35.0/tc2_utilities.compiled-library:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/source/TwinCat_Lib/log4tc/log4tc/log4Tc_Tester/_Libraries/beckhoff automation gmbh/tc2_utilities/3.3.35.0/tc2_utilities.compiled-library
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/log4Tc_Tester/_Libraries/beckhoff automation gmbh/tc3_module/3.3.21.0/tc3_module.compiled-library:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/source/TwinCat_Lib/log4tc/log4tc/log4Tc_Tester/_Libraries/beckhoff automation gmbh/tc3_module/3.3.21.0/tc3_module.compiled-library
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/log4Tc_Tester/_Libraries/mbc engineering gmbh/log4tc/0.0.1/mbc_log4tc.library:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/source/TwinCat_Lib/log4tc/log4tc/log4Tc_Tester/_Libraries/mbc engineering gmbh/log4tc/0.0.1/mbc_log4tc.library
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/log4Tc_Tester/_Libraries/mbc engineering gmbh/log4tc/0.0.2/mbc_log4tc_v.0.0.2.library:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/source/TwinCat_Lib/log4tc/log4tc/log4Tc_Tester/_Libraries/mbc engineering gmbh/log4tc/0.0.2/mbc_log4tc_v.0.0.2.library
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/log4Tc_Tester/_Libraries/system/base interfaces/3.5.2.0/base_itfs.compiled-library:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/source/TwinCat_Lib/log4tc/log4tc/log4Tc_Tester/_Libraries/system/base interfaces/3.5.2.0/base_itfs.compiled-library
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/log4Tc_Tester/_Libraries/system/cmperrors2 interfaces/3.5.12.0/cmperrors2_itfs.compiled-library:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/source/TwinCat_Lib/log4tc/log4tc/log4Tc_Tester/_Libraries/system/cmperrors2 interfaces/3.5.12.0/cmperrors2_itfs.compiled-library
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/log4Tc_Tester/_Libraries/system/sysdir/3.5.12.0/sysdir.compiled-library:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/source/TwinCat_Lib/log4tc/log4tc/log4Tc_Tester/_Libraries/system/sysdir/3.5.12.0/sysdir.compiled-library
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/log4Tc_Tester/_Libraries/system/sysdir/3.5.8.0/sysdir.compiled-library:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/source/TwinCat_Lib/log4tc/log4tc/log4Tc_Tester/_Libraries/system/sysdir/3.5.8.0/sysdir.compiled-library
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/log4Tc_Tester/_Libraries/system/sysfile/3.5.9.0/sysfile.compiled-library:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/source/TwinCat_Lib/log4tc/log4tc/log4Tc_Tester/_Libraries/system/sysfile/3.5.9.0/sysfile.compiled-library
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/log4Tc_Tester/_Libraries/system/systypes2 interfaces/3.5.4.0/systypes_itfs.compiled-library:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/source/TwinCat_Lib/log4tc/log4tc/log4Tc_Tester/_Libraries/system/systypes2 interfaces/3.5.4.0/systypes_itfs.compiled-library
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/log4Tc_Tester/_Libraries/www.tcunit.org/tcunit/1.1.0.0/tcunit.library:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/source/TwinCat_Lib/log4tc/log4tc/log4Tc_Tester/_Libraries/www.tcunit.org/tcunit/1.1.0.0/tcunit.library
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/log4tc.tsproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | {382990C3-AE78-4CDF-8201-CD9F44FB3CAA}
8 |
9 |
10 |
11 |
12 | PlcTask
13 |
14 |
15 | PlcTask1
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/.gitignore:
--------------------------------------------------------------------------------
1 | LineIDs.dbg
2 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Context/F_LogContext.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/Any/F_LogA1.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
13 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/Any/F_LogA10.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
21 |
22 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/Any/F_LogA2.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
13 |
14 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/Any/F_LogA3.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
14 |
15 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/Any/F_LogA4.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
15 |
16 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/Any/F_LogA5.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
16 |
17 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/Any/F_LogA6.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
17 |
18 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/Any/F_LogA7.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
18 |
19 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/Any/F_LogA8.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
19 |
20 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/Any/F_LogA9.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
20 |
21 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/Any/F_LogLA1.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
15 |
16 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/Any/F_LogLA10.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
22 |
23 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/Any/F_LogLA10C.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
23 |
24 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/Any/F_LogLA1C.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
16 |
17 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/Any/F_LogLA2.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
16 |
17 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/Any/F_LogLA2C.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
17 |
18 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/Any/F_LogLA3.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
17 |
18 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/Any/F_LogLA3C.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
18 |
19 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/Any/F_LogLA4.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
18 |
19 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/Any/F_LogLA4C.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
19 |
20 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/Any/F_LogLA5.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
19 |
20 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/Any/F_LogLA5C.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
20 |
21 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/Any/F_LogLA6.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
20 |
21 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/Any/F_LogLA6C.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
21 |
22 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/Any/F_LogLA7.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
21 |
22 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/Any/F_LogLA7C.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
22 |
23 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/Any/F_LogLA8.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
22 |
23 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/Any/F_LogLA8C.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
23 |
24 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/Any/F_LogLA9.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
23 |
24 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/Any/F_LogLA9C.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
24 |
25 |
43 |
44 |
45 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/F_Log.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
25 |
26 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/F_LogBuilder.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/F_LogL.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
30 |
31 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/TArg/F_LogL1.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
15 |
16 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/TArg/F_LogL10.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
23 |
24 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/TArg/F_LogL2.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
15 |
16 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/TArg/F_LogL3.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
16 |
17 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/TArg/F_LogL4.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
17 |
18 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/TArg/F_LogL5.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
18 |
19 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/TArg/F_LogL6.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
19 |
20 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/TArg/F_LogL7.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
20 |
21 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/TArg/F_LogL8.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
21 |
22 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/API/Simple/TArg/F_LogL9.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
22 |
23 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/DUTs/E_CustomTypes.TcDUT:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
18 |
19 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/DUTs/E_Scope.TcDUT:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
18 |
19 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/DUTs/ST_Log4TcTaskInfo.TcDUT:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
13 |
14 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/DUTs/ST_ScopedContextStack.TcDUT:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
13 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/GVLs/Config.TcGVL:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
12 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/GVLs/Const.TcGVL:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/GVLs/Log4TcInfo.TcGVL:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/ITFs/I_LogEntryAdder.TcIO:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/POUs/PRG_ScopedContextStack.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
19 |
20 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/POUs/Utils/F_DINT_TO_UINT_MAX.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 | nMaxValue THEN
14 | F_DINT_TO_UINT_MAX := nMaxValue;
15 | ELSE
16 | F_DINT_TO_UINT_MAX := DINT_TO_UINT(nValue);
17 | END_IF
18 | ]]>
19 |
20 |
21 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/POUs/Utils/IncUDINT.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/Test/PRG_Test.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
19 |
20 |
45 |
46 |
47 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/Test/PlcTask.TcTTO:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 1000
6 | 20
7 |
8 | PRG_Test
9 |
10 | {f73ea55d-57f9-4818-8e95-fc524fbddad0}
11 | {3d0005ec-ccf5-4565-a28c-044fdf045341}
12 | {8b18efff-5170-4ae9-b26f-4ce33247f86d}
13 | {90889698-95f6-41fa-845b-432d89ee7a8f}
14 | {a72e40e7-00a5-41f7-b4fb-73cfb422a683}
15 |
16 |
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/_Libraries/beckhoff automation gmbh/tc2_standard/3.3.2.0/tc2_standard.compiled-library:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/_Libraries/beckhoff automation gmbh/tc2_standard/3.3.2.0/tc2_standard.compiled-library
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/_Libraries/beckhoff automation gmbh/tc2_system/3.4.21.0/tc2_system.compiled-library:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/_Libraries/beckhoff automation gmbh/tc2_system/3.4.21.0/tc2_system.compiled-library
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/_Libraries/beckhoff automation gmbh/tc2_utilities/3.3.35.0/tc2_utilities.compiled-library:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/_Libraries/beckhoff automation gmbh/tc2_utilities/3.3.35.0/tc2_utilities.compiled-library
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/_Libraries/beckhoff automation gmbh/tc3_module/3.3.21.0/tc3_module.compiled-library:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/_Libraries/beckhoff automation gmbh/tc3_module/3.3.21.0/tc3_module.compiled-library
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/_Libraries/system/base interfaces/3.5.2.0/base_itfs.compiled-library:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/_Libraries/system/base interfaces/3.5.2.0/base_itfs.compiled-library
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/_Libraries/system/cmperrors2 interfaces/3.5.12.0/cmperrors2_itfs.compiled-library:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/_Libraries/system/cmperrors2 interfaces/3.5.12.0/cmperrors2_itfs.compiled-library
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/_Libraries/system/sysdir/3.5.12.0/sysdir.compiled-library:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/_Libraries/system/sysdir/3.5.12.0/sysdir.compiled-library
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/_Libraries/system/sysfile/3.5.9.0/sysfile.compiled-library:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/_Libraries/system/sysfile/3.5.9.0/sysfile.compiled-library
--------------------------------------------------------------------------------
/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/_Libraries/system/systypes2 interfaces/3.5.4.0/systypes_itfs.compiled-library:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mbc-engineering/log4TC/d40168f83b422207b6ba510668f95e1a98890e11/source/TwinCat_Lib/log4tc/log4tc/mbc_Log4TC/_Libraries/system/systypes2 interfaces/3.5.4.0/systypes_itfs.compiled-library
--------------------------------------------------------------------------------
/source/WinCEKey.py:
--------------------------------------------------------------------------------
1 | import hashlib
2 | import uuid
3 | import base64
4 |
5 | #system_id = '5C78FAE1-9512-4E8F-F704-5A4DFF9D86BD'
6 | system_id = input("System-ID:")
7 | license_id = '9BDDB874-8F39-4D26-90BB-4237ED0644FB'
8 |
9 | sys_id = uuid.UUID(system_id).bytes_le
10 | lic_id = uuid.UUID(license_id).bytes_le
11 |
12 | h = hashlib.sha256()
13 | h.update(sys_id)
14 | h.update(lic_id)
15 | hash = h.digest()
16 |
17 | print(base64.b64encode(hash[0:30]))
18 |
19 |
--------------------------------------------------------------------------------