Skip to main content

You are not logged in. Your edit will be placed in a queue until it is peer reviewed.

We welcome edits that make the post easier to understand and more valuable for readers. Because community members review edits, please try to make the post substantially better than how you found it, for example, by fixing grammar or adding additional resources and hyperlinks.

Required fields*

11
  • 83
    It should be noted that the purpose of slf4j is to abstract away the logging framework, but that first method does away with that by referencing the logging framework directly. Commented Apr 11, 2013 at 21:14
  • 3
    If you do this and get a ClassCastException, it's most likely due to having multiple SLF4J bindings on the classpath. The log output will indicate this and which bindings are present to let you determine which one(s) you need to exclude. Commented Aug 15, 2013 at 17:54
  • 9
    Slf4j provides an API so that libraries can log application logs using whatever log framework the application developer wants. The point is that the application developer still must choose a log framework, depend on it, and configure it. Configuring the logger as dogbane has done does not violate this principle. Commented Feb 6, 2016 at 13:35
  • 4
    @JohnWiseman If you want it be configured, then you have to configure it somewhere. As slf4j offers nothing in this respect, there will always be something dependent on the underlying logger. Be it a piece of code or a configuration file. +++ If it should be done programmatically as the OP requested, then you have no choice. Still, advantages remain: 1. Only a tiny part of the code depends on the concrete logger engine (and it could be written so that it may handle different implementations). 2. You can configure libraries written using other loggers, too. Commented May 15, 2016 at 15:34
  • 17
    Why does it have to be so complicated for something like Logging, shouldn't there be a direct way to change logging level in the code itself. How does following the principle of particular library take precedence over its simplicity? Coming from a Python world, I fail to understand why something as simple as Logging is so complicated in Java/Scala. Commented Jan 15, 2019 at 16:04