std.logger

String logging facilities for Phobos.

Docu:
http://burner.github.io/phobos/phobos-prerelease/std_logger_core.html
http://burner.github.io/phobos/phobos-prerelease/std_logger_filelogger.html
http://burner.github.io/phobos/phobos-prerelease/std_logger_multilogger.html
http://burner.github.io/phobos/phobos-prerelease/std_logger_nulllogger.html

dub
http://code.dlang.org/packages/logger
@burner: Your reply to a) is inherent in the design either way (it's unsafe to use the logger if the file is out of scope), and in b) you presume that there is a reason to want the `File` by ref in the first place, even though it is designed to not have an identity of its own (i.e. is just a ref-counting wrapper).

I agree with @yebblies that the general design is questionable regardless.