I've been spending some time in the last few weeks to prototype a logging framework that's inspired by [SLF4J](https://www.slf4j.org/). To that end, I've created [SLF4D](https://github.com/andrewlalis/slf4d), which provides a common logging interface, and a pluggable architecture to allow third-parties to handle log messages generated by any logger in an application.

Here's a short example of how it can be used in your code:

```d
import slf4d;

void main() {
  auto log = getLogger();
  log.info("This is an info message.");
  log.errorF!"This is an error message: %d"(42);
}
```

The library includes a default "logging provider" that just outputs formatted messages to stdout and stderr, but a third-party provider can be used by calling `configureLoggingProvider(provider)`.

The idea is that I can create logging providers to wrap the various logging facilities available in the D ecosystem already (Phobos, Vibe-D, etc.), so SLF4D can serve as a common interface to any provider.

I'd appreciate any feedback on this so far! This first version should be mostly stable, but there may of course be bugs. Thanks!

Reply via email to