serilog-sinks-eventlog icon indicating copy to clipboard operation
serilog-sinks-eventlog copied to clipboard

Serilog.Sinks.EventLog fails Windows validation in .Net Foundation 4.8.1

Open brentbiggs opened this issue 1 year ago • 0 comments

Basic functional test failing on PS 5.1, but works with PS 7.3. Other tested serilog.sinks (File, Console) function as expected.

Error seems to be centered around this line: https://github.com/serilog/serilog-sinks-eventlog/blob/dac4ef3e2fa3ce4d389c15f22c7141430791ffb0/src/Serilog.Sinks.EventLog/LoggerConfigurationEventLogExtensions.cs#L70

Failed case with PowerShell 5.1 .NET Foundation 4.8.1:

PS C:\> $serilog = Add-Type -Path "C:\Program Files\WindowsPowerShell\Modules\PoShLog\2.1.1\lib\Serilog.dll" -PassThru
PS C:\> $serilogEventLog = Add-Type -Path "C:\Program Files\WindowsPowerShell\Modules\PoShLog.Sinks.EventLog\1.0.0\lib\Serilog.Sinks.Eventlog.dll" -PassThru
PS C:\> $config = New-Object Serilog.LoggerConfiguration
PS C:\> [Serilog.LoggerConfigurationEventLogExtensions]::EventLog($Config.WriteTo,'Application')                                                             Exception calling "EventLog" with "2" argument(s): "EventLog access is not supported on this platform." 
At line:1 char:1
+ [Serilog.LoggerConfigurationEventLogExtensions]::EventLog($Config.Wri ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : PlatformNotSupportedException
PS C:\> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.1.19041.3031
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.19041.3031
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

Passed case with PowerShell 7.3.4 .NET 7:

PS C:\> $serilog = Add-Type -Path "C:\Program Files\WindowsPowerShell\Modules\PoShLog\2.1.1\lib\Serilog.dll" -PassThru
PS C:\> $serilogEventLog = Add-Type -Path "C:\Program Files\WindowsPowerShell\Modules\PoShLog.Sinks.EventLog\1.0.0\lib\Serilog.Sinks.Eventlog.dll" -PassThru
PS C:\> $config = New-Object Serilog.LoggerConfiguration
PS C:\> [Serilog.LoggerConfigurationEventLogExtensions]::EventLog($Config.WriteTo,'Application')

WriteTo      : Serilog.Configuration.LoggerSinkConfiguration
AuditTo      : Serilog.Configuration.LoggerAuditSinkConfiguration
MinimumLevel : Serilog.Configuration.LoggerMinimumLevelConfiguration
Enrich       : Serilog.Configuration.LoggerEnrichmentConfiguration
Filter       : Serilog.Configuration.LoggerFilterConfiguration
Destructure  : Serilog.Configuration.LoggerDestructuringConfiguration
ReadFrom     : Serilog.Configuration.LoggerSettingsConfiguration


PS C:\> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      7.3.4
PSEdition                      Core
GitCommitId                    7.3.4
OS                             Microsoft Windows 10.0.19045
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

brentbiggs avatar Aug 16 '23 22:08 brentbiggs