- New sink and cmdlet
Add-SinkPowerShellallowing to write log events into PowerShell host and it's correct streams. Suggested by gitbute in this issue. Start-Loggernow has-PassThruparameter allowing it to returnSerilog.Loggerinstance thus allowing multiple logger instances. Together with that,-SetAsDefaultparameter was added to allow, setting outputtedSerilog.Loggerinstance into static variable[Serilog.Log]::Logger, so the logger is available globally.-SetAsDefaultworks only together with-PassThruparameter.- All
Write-*Logcmdlets now have-Loggerparameter allowing them to write to specific Logger instance. Same applies toClose-Loggercmdlet. - All
Write-*Logcmdlets now have-ErrorRecordparameter to directly pass ErrorRecord variable from try-catch -try { throw 'err' } catch { Write-ErrorLog -ErrorRecord $_ }. - New cmdlet
Set-Loggerallowing to setSerilog.Loggerinstance into[Serilog.Log]::Logger, so the logger is available globally. So user doesn't have to specify the logger instance when using for exampleWrite-InfoLog 'Test'instead ofWrite-InfoLog -Logger $logger -MessageTemplate 'Test'. - New cmdlet
Add-EnrichWithPropertyenriches log events with custom properties. - New cmdlet
Add-EnrichWithErrorRecordenriches log events with ErrorRecord property when available. - Added
-FromPreferenceand-ToPreferenceparameters toSet-MinimumLevelcmdlet and-ToPreferenceparameter toNew-LevelSwitchandSet-LevelSwitchcmdlets for better integration with powershell preference variables.-FromPreferenceparameter allows user to "load" log minimum level from powershell preference variables.-ToPreferenceparameter allows to "write" log minimum into powershell preference variables. - Added second overload for
Add-SinkFilecmdlet, allowing to use-Formatter, also addedGet-JsonFormattercmdlet for that purpose.
- Fixed validation for
Write-*Logparameters-MessageTemplate,-Exceptionand-PropertyValues- they will no longer raise error if you pass empty string or$null.