I'm tasked of introducing logging to a larger project. I have the following requirements:
- Logging to the same file must be enabled from Visual Studio's C++ products, C# products, desktop apps, windows services, and more than one process should be able to write to a log file at once.
- Format of logs is custom (semi-colon delimited fields, something like "custom_date;custom_time;the_rest;of_the_fields").
- Log files have limit in size.
- There's main .log file and older .bak file. .bak file is deleted when new .log file is created and current .log is renamed to .bak.
- In one special case name of log files depends on time of creation. There are no multi-process writes in this case.
Now, I can roll my own implementation, but it would be really nice if there are ready made free libraries that satisfy all of the requirements. Does any one know of such libraries?