Writing Custom Logging Provider
So you want to write custom logging provider?
Let's begin
This is an example of custom provider -
In order to write custom logging provider, you need to create powershell module with a function which implements SimplePSLogger Provider interface implemented in above example.
note
You will have export all functions from your custom logger. On line 31 in above example we have exported one function module member AwesomeLoggingProvider if you have other functions defined in there, please export them so that those are available in SimplePSLogger instance.
SimplePSLogger Provider Interface
Parameter Name | Description |
---|---|
Name | Name of the logger provided by end user while creating logging instance |
Level | LogLevel supplied by an end user for a single log message |
Message | Actual value of log message provided by an end user |
Config | Configuration required by your logging provider. It's good to have default values wherever possible. Define clear and self explanatory names for configuration keys. example - AzLogAnalytics Configuration |
Flush | This is an optional paramter. Use this if your logging provider buffers logs before saving/sending/displaying them. SimplePSLogger.AzLogAnalytics provider does support buffering, please take look at it's implementation to get an idea. |
note
Custom logging provider configuration should have two mandatory properties/keys
Enabled - boolean flag
LogLevel - LogLevel
tip
Example custom logging provider - https://github.com/geekwhocodes/simple-ps-logger/blob/master/Examples/ExtProvider/ExtProvider.psm1
After writing custom provider, you will need to register it. SimplePSLogger provides a simple way to register it, see here.
If you are facing problems, tweet me at @_ganesh_raskar