Extensible logging for Dart