Am Sat, 11 Oct 2014 12:23:10 +0000 schrieb "Robert burner Schadek" <rburn...@gmail.com>:
> On Saturday, 11 October 2014 at 04:31:17 UTC, Jakob Ovrum wrote: > > The implementation of `Logger` has several performance > > problems. `Logger` provides default behaviour that allocates GC > > memory multiple times for even the simplest log messages > > through the `Appender`. I don't think this behaviour should be > > encouraged by putting it in the root logger class, and besides, > > it can be made much more intelligent than just using a new > > appender for each message. > > Well, to have ultra simple thread-safe sub classing (which is an > important part of the design), this was the price. This being > said. Doing it nogc yourself if you know the output is very easy > as shown in FileLogger. I had the same feeling as Jakob about an `Appender` already in the base class and would have expected a bare bones abstract class + a batteries included version using `Appender`. (A bit like Java's …Listener and …Adapter classes.) That seems more clean to me in a representational fashion. Technically we can just ignore the extra field... It also seems legit to reduce pressure on the GC, by resetting the `Appender` instead of nulling it. -- Marco