A few weeks ago, my colleagues had a spotlight on the common .NET logging library NLog (http://nlog-project.org). This specific class library, provides a lot of functions, methods and classes, to perform logging actions in .NET applications, assemblies, etc. in a very professional way. You can decide what you log, where you log (file, database, mail, console, etc…), how much you log, how the log data looks like and when the logs can be recycled, or archived.
Sound’s perfect to me i thought, and for me as an IT professional, it provides me all the features i require for logging, and i don’t need to write my own logging engine.
PowerShell becomes more and more important, even if you have a script, that runs well and you need to find out what’s broken, if you touched the script, a long time ago. Therefor, i thought it would be a cool thing, to have a kind of a “Logging Interface” for my PS-Scripts. Primary, my major goal was, to better understand how .NET-Objects and a scripting engine can interact together.
- Common logging functionality for all your PowerShell scripts
- Reusable code
- Easy to implement for the future
So let’s go ahead and start with the implementation of the LogInterface into your scripts. All you have to do, is, to include the LogInterface.ps1 script into your scripts. In PowerShell it looks like you see it below.
# Include block
To get the logger work properly and use it, you have to perform the steps