My own few comments from quick overview of the documentation (must admit I did not pay much attention to previous logger discussion threads).

=== critical ===

1)

I don't like forced verbosity of mentioning logging levels. In my opinion logging is one place where laconic syntax elegance really helps. Would have been nice to have `error(...)` as an alias to `log(LogLevel.Error, ...)` etc.

2)

I don't like that default `log` function outputs conditionally. It is rather unexpected and less frequent use case. I think current `logf` should become `log` and current `log` turn into `logIf` (with matching `errorIf`, `debugIf` etc.)

3)

Simple way to define multiple loggers as default ones is missing. As far as I understand, currently it can be done by creating own Logger which embeds multiple simple ones and registering it as default in LogManager. I think such common task should have built-in solution.

=== possible features? ===

One interesting addition would be to embed module name into logger call and provide facilities to filter output on per-module basis (similar to log level). D introspection tools should allow to do that with no observable API complication.

Reply via email to