I'm in 100% disagreement. If you don't add the f suffix, users will write:

info(<user provided string that could contain format>);

This is a crash if the user provided string happens to contains "%s".
I wouldn't use such an API which makes format bugs hard to find.


It does the right thing... there is an overload: without additional arguments, the first argument (not necessary a string) is not a format string.



2. No support for 24/7 (server) applications

In my opinion, I really need logging for applications that possibly run forever.
With the FileLogger, the file will grow forever.
That's why most other frameworks provide something like a RollingFileLogger or some "logrotate-aware" FileLogger.

Do you realize rolling loggers are not there because they are supposed to be in another layer as subclasses of Logger?


Contrary to the NullLogger, writing a rolling logger is a non-trivial task.


By the way: Instead of what I really need, I get a NullLogger.
I have no clue, why I never ever missed such an oddity.

I asked for it. And I use it, because I write libraries that log warnings but don't forcefully require the users to provide a Logger if they don't want to. And that way, I can still write "logger.warningf" without "if" everywhere.

Reply via email to