Product: PowerShell Universal Version: 4.0.9
Anybody get TCP logging to syslog working in 4.0.9?
File and database logs work. Also get an error with the configuration.
Invalid configuration: logging.ps1
Uri should be in the format tcp://server:port
New-PSULoggingTarget -Type "TCP" -Properties @{
hostName = 'syslog'
port = '514'
} -Feature "Automation" -Resource "syslogtest"
New-PSULoggingTarget -Type "File" -Level "Debug" -Properties @{
path = 'c:\logs\psu\syslogtest'
} -Feature "Automation" -Resource "syslogtest" Write-PSULog -Feature Automation -Message "msg=Write-PSULog syslog test, key1=value1, key2=value2" -Level Information -Resource "syslogtest"
System Log
2023-08-07 14:14:53.020 -04:00 [ERR] Failed to read configuration file. logging.ps1 System.ArgumentNullException: Uri should be in the format tcp://server:port ---> System.UriFormatException: Invalid URI: The format of the URI could not be determined. at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind, UriCreationOptions& creationOptions) at System.Uri..ctor(String uriString) at Serilog.Sinks.Network.NetworkLoggerConfigurationExtensions.BuildUri(String s) --- End of inner exception stack trace --- at Serilog.Sinks.Network.NetworkLoggerConfigurationExtensions.BuildUri(String s) at Serilog.Sinks.Network.NetworkLoggerConfigurationExtensions.TCPSink(LoggerSinkConfiguration loggerConfiguration, String uri, ITextFormatter textFormatter, LogEventLevel restrictedToMinimumLevel) at Serilog.Sinks.Network.NetworkLoggerConfigurationExtensions.TCPSink(LoggerSinkConfiguration loggerConfiguration, String host, Int32 port, ITextFormatter textFormatter, LogEventLevel restrictedToMinimumLevel) at UniversalAutomation.Services.LoggingTargetsConfigurationScript.<>c__DisplayClass8_1.<OnReadAfterAllAsync>b__3(LoggerConfiguration lc) in C:\actions-runner\_work\universal\universal\src\Universal.Server\Services\Configuration\LoggingTargets.cs:line 76 at Serilog.Configuration.LoggerSinkConfiguration.Logger(Action`1 configureLogger, LogEventLevel restrictedToMinimumLevel, LoggingLevelSwitch levelSwitch) at UniversalAutomation.Services.LoggingTargetsConfigurationScript.OnReadAfterAllAsync(Boolean initialSync) in C:\actions-runner\_work\universal\universal\src\Universal.Server\Services\Configuration\LoggingTargets.cs:line 76 at UniversalAutomation.Services.ConfigurationScript`1.ReadAsync(String rootPath, Boolean initialSync) in C:\actions-runner\_work\universal\universal\src\PowerShellUniversal\ConfigurationScript.cs:line 309
This looks like a bug. I opened and issue here: TCP\UDP Logging Target Error · Issue #2600 · ironmansoftware/issues · GitHub
Adam Driscoll
PowerShell Expert and Developer at Devolutions
UDP works now.
New-PSULoggingTarget -Type "UDP" -Level "Debug" -Properties @{
hostName = 'syslog'
port = '514'
} -Resource "Audit"
TCP version still throws an error.
2023-08-16 19:47:55.139 -04:00 [ERR] Failed to read configuration file. logging.ps1 System.ArgumentNullException: Value cannot be null. (Parameter 's') at System.Int32.Parse(String s) at UniversalAutomation.Services.LoggingTargetsConfigurationScript.<>c__DisplayClass8_1.<OnReadAfterAllAsync>b__3(LoggerConfiguration lc) in C:\actions-runner\_work\universal\universal\src\Universal.Server\Services\Configuration\LoggingTargets.cs:line 76 at Serilog.Configuration.LoggerSinkConfiguration.Logger(Action`1 configureLogger, LogEventLevel restrictedToMinimumLevel, LoggingLevelSwitch levelSwitch) at UniversalAutomation.Services.LoggingTargetsConfigurationScript.OnReadAfterAllAsync(Boolean initialSync) in C:\actions-runner\_work\universal\universal\src\Universal.Server\Services\Configuration\LoggingTargets.cs:line 76 at UniversalAutomation.Services.ConfigurationScript`1.ReadAsync(String rootPath, Boolean initialSync) in C:\actions-runner\_work\universal\universal\src\PowerShellUniversal\ConfigurationScript.cs:line 309