From 0ab0641d3f1db429e00079a91564dd4d3b5b5072 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20Boutemy?= Date: Wed, 19 Dec 2012 00:36:27 +0100 Subject: [PATCH] added Logback support --- maven-embedder/pom.xml | 6 ++ .../logging/impl/LogbackConfiguration.java | 62 +++++++++++++++++++ .../maven/slf4j-configuration.properties | 3 +- 3 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 maven-embedder/src/main/java/org/apache/maven/cli/logging/impl/LogbackConfiguration.java diff --git a/maven-embedder/pom.xml b/maven-embedder/pom.xml index 587398f371..c95eb8739b 100644 --- a/maven-embedder/pom.xml +++ b/maven-embedder/pom.xml @@ -74,6 +74,12 @@ org.slf4j slf4j-api + + ch.qos.logback + logback-classic + 1.0.7 + true + commons-cli diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/logging/impl/LogbackConfiguration.java b/maven-embedder/src/main/java/org/apache/maven/cli/logging/impl/LogbackConfiguration.java new file mode 100644 index 0000000000..2d60b75df4 --- /dev/null +++ b/maven-embedder/src/main/java/org/apache/maven/cli/logging/impl/LogbackConfiguration.java @@ -0,0 +1,62 @@ +package org.apache.maven.cli.logging.impl; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import java.io.File; + +import org.apache.maven.cli.logging.BaseSlf4jConfiguration; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Configuration for slf4j-logback. + * + * @author Hervé Boutemy + */ +public class LogbackConfiguration + extends BaseSlf4jConfiguration +{ + @Override + public void setRootLoggerLevel( Level level ) + { + ch.qos.logback.classic.Level value = ch.qos.logback.classic.Level.INFO; + switch ( level ) + { + case DEBUG: + value = ch.qos.logback.classic.Level.DEBUG; + break; + + case INFO: + value = ch.qos.logback.classic.Level.INFO; + break; + + case ERROR: + value = ch.qos.logback.classic.Level.ERROR; + break; + } + ( (ch.qos.logback.classic.Logger) LoggerFactory.getLogger( Logger.ROOT_LOGGER_NAME ) ).setLevel( value ); + } + + @Override + public void setLoggerFile( File output ) + { + // no op + } +} diff --git a/maven-embedder/src/main/resources/META-INF/maven/slf4j-configuration.properties b/maven-embedder/src/main/resources/META-INF/maven/slf4j-configuration.properties index 150c15b7d4..5a6a12f765 100644 --- a/maven-embedder/src/main/resources/META-INF/maven/slf4j-configuration.properties +++ b/maven-embedder/src/main/resources/META-INF/maven/slf4j-configuration.properties @@ -1,4 +1,5 @@ # key = Slf4j effective logger factory implementation # value = corresponding o.a.m.cli.logging.Slf4jConfiguration class org.slf4j.impl.SimpleLoggerFactory org.apache.maven.cli.logging.impl.Slf4jSimpleConfiguration -org.slf4j.helpers.Log4JLoggerFactory org.apache.maven.cli.logging.impl.Log4j2Configuration \ No newline at end of file +org.slf4j.helpers.Log4JLoggerFactory org.apache.maven.cli.logging.impl.Log4j2Configuration +ch.qos.logback.classic.LoggerContext org.apache.maven.cli.logging.impl.LogbackConfiguration