我试图了解如何在 PS 中使用 SeriLog。
这是一个有效的代码示例:
$SeriLog = Add-Type -Path "C:\Program Files\PackageManagement\Serilog.2.10.0\lib\net46\Serilog.dll" -PassThru
$SeriLog_Sink_Console = Add-Type -Path "C:\Program Files\PackageManagement\Serilog.Sinks.Console.3.1.1\lib\net45\Serilog.Sinks.Console.dll" -PassThru
$SeriLog_Config = New-Object Serilog.LoggerConfiguration
$SeriLog_Config = [Serilog.Configuration.LoggerSinkConfiguration]$SeriLog_Config_Sink = $SeriLog_Config.WriteTo
[Serilog.Log]::Logger = [Serilog.ConsoleLoggerConfigurationExtensions]::Console($SeriLog_Config_Sink).CreateLogger()
[Serilog.Log]::Information("Logging started")
根据 SeriLogs 站点上列出的 dotnet 示例,我不明白为什么我的所有接收器都丢失了。
例子:
$SeriLog = Add-Type -Path "C:\Program Files\PackageManagement\Serilog.2.10.0\lib\net46\Serilog.dll" -PassThru
$SeriLog_Sink_Console = Add-Type -Path "C:\Program Files\PackageManagement\Serilog.Sinks.Console.3.1.1\lib\net45\Serilog.Sinks.Console.dll" -PassThru
$SeriLog_Config = New-Object Serilog.LoggerConfiguration
$SeriLog_Config.WriteTo.Console()
我得到的错误是:
InvalidOperation:方法调用失败,因为 [Serilog.Configuration.LoggerSinkConfiguration] 不包含名为“Console”的方法。
这在某种程度上是有道理的,因为我可以看到它丢失了,但我不明白为什么?我已经导入了两个 DLL。我想对我来说,在了解如何在 PS 中使用 DLL 时,我还是个新手。我的运气要好得多,并且有一个使用 Log4Net 的可靠工作模块,但我正在尝试迁移到更现代的东西,我正在努力了解如何集成各种接收器,如果公共示例dotnet 不翻译为 PS。
JFYI,我正在使用 PS 7.1 以防万一。