So, I want everything to be configured from config file and changed after program is compiled.
* Asynchronous wrapper for any log target with some parameters to tune if necessary. * Colorful output to console (separately to stdout and stderr). I can specify colors based on event properties using condition attribute. Using conditions applies to other log targets and other scenarios. * For file target I can specify various log archiving option, based on date, counter, rolling counter, etc. Paths can include references to special folders, process IDs, thread IDs, event event properties, etc., not only environment variables. * Did not find any concept of rules NLog has. I want to be able to freely map event parameters (name, level) to targets.
Again, I have no experience with Serilog, so I expect myself to be wrong and least partially.
Just on the topic of console output, you might enjoy the "literate console" - https://nblumhardt.com/2015/06/contender-for-nets-prettiest-... - for a different take on colored console output :-)
Cheers!