Maven Log binding for SLF4J
Maven Log to SLF4J binding is implemented with StaticLoggerBinder singleton. This is how you use it in your Maven plugin:
import com.jcabi.log.Logger; import org.apache.maven.plugin.AbstractMojo; import org.slf4j.impl.StaticLoggerBinder; public class MyMojo extends AbstractMojo { @Override public void execute() { StaticLoggerBinder.getSingleton().setMavenLog(this.getLog()); // ... later ... Logger.info(this, "hello, world!"); // and you can still use the usual logging mechanism this.getLog().info("hello again"); } }
The Logger.info() call will go to Maven Log through SLF4J.
Since 0.7.12 log stream is forwarded to SystemStreamLog if StaticLoggerBinder.setMavenLog() is not called. In earlier versions a runtime exception was thrown.
The only dependency you need (you can also download jcabi-maven-slf4j-0.8.jar and add it to the classpath):
<dependency> <groupId>com.jcabi</groupId> <artifactId>jcabi-maven-slf4j</artifactId> <version>0.8</version> </dependency>
Cutting Edge Version
If you want to use current version of the product, you can do it with this configuration in your pom.xml:
<repositories> <repository> <id>oss.sonatype.org</id> <url>https://oss.sonatype.org/content/repositories/snapshots/</url> </repository> </repositories> <dependencies> <dependency> <groupId>com.jcabi</groupId> <artifactId>jcabi-maven-slf4j</artifactId> <version>1.0-SNAPSHOT</version> </dependency> </dependencies>