Serilog is another structured logging solution that has become popular since the question was first asked.
- Serilog website.
- Discussion with developer Nicholas Blumhardt on .NET Rocks!
In his interview, Mr. Blumhardt talks about building the library as a result of going through the pain of logging that we have all experienced. They talk on the show about simple logging during initial development and formalizing logging as the project matures. Good stuff and may add to the best practices knowledge base brought up in the question.
From the website:
Like other logging libraries for .NET, Serilog provides diagnostic
logging to files, the console, and so-on. It is easy to set up, has a
clean API, and is portable between recent .NET platforms.
Unlike other logging libraries for .NET, Serilog is built with
structured log data in mind. Parameters passed along with log messages
are not destructively rendered into a text format. Instead, they're
preserved as structured data that can be written in document form to a
NoSQL data store