Level class is lg4j specific: I can't use it I didn't find anything usable more specific than int: ideas welcome.
but what I can do is adding javadoc pointing to plexus Logger constants to document accepted values Regards, Hervé Le samedi 15 décembre 2012 20:48:15 Jason van Zyl a écrit : > I would suggest you use the Level[1] class instead of a raw int for setting > the level. > > [1]: http://www.slf4j.org/apidocs/org/apache/log4j/Level.html > > jvz > > On 2012-12-15, at 7:57 PM, [email protected] wrote: > > Updated Branches: > > refs/heads/master 915b1553f -> 39e11cf2e > > > > extracted Slf4jConfiguration interface and corresponding implementation > > to clearly separate code depending on slf4j binding > > > > still need to add automatic selection of implementation > > > > Project: http://git-wip-us.apache.org/repos/asf/maven/repo > > Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/39e11cf2 > > Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/39e11cf2 > > Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/39e11cf2 > > > > Branch: refs/heads/master > > Commit: 39e11cf2e51a41fc47001f0fe59da251dab87587 > > Parents: 73ffdaf > > Author: Hervé Boutemy <[email protected]> > > Authored: Sun Dec 16 01:57:36 2012 +0100 > > Committer: Hervé Boutemy <[email protected]> > > Committed: Sun Dec 16 01:57:36 2012 +0100 > > > > ---------------------------------------------------------------------- > > .../main/java/org/apache/maven/cli/MavenCli.java | 12 ++- > > .../cli/logging/AbstractSlf4jConfiguration.java | 46 +++++++++++ > > .../maven/cli/logging/Slf4jConfiguration.java | 35 ++++++++ > > .../cli/logging/impl/Slf4jSimpleConfiguration.java | 62 +++++++++++++++ > > 4 files changed, 151 insertions(+), 4 deletions(-) > > ---------------------------------------------------------------------- > > > > > > http://git-wip-us.apache.org/repos/asf/maven/blob/39e11cf2/maven-embedder/ > > src/main/java/org/apache/maven/cli/MavenCli.java > > ---------------------------------------------------------------------- > > diff --git > > a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java > > b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java index > > e744e65..e3c62f8 100644 > > --- a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java > > +++ b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java > > @@ -39,8 +39,10 @@ import org.apache.maven.InternalErrorException; > > import org.apache.maven.Maven; > > import org.apache.maven.cli.event.DefaultEventSpyContext; > > import org.apache.maven.cli.event.ExecutionEventLogger; > > +import org.apache.maven.cli.logging.Slf4jConfiguration; > > import org.apache.maven.cli.logging.Slf4jLoggerManager; > > import org.apache.maven.cli.logging.Slf4jStdoutLogger; > > +import org.apache.maven.cli.logging.impl.Slf4jSimpleConfiguration; > > import org.apache.maven.cli.transfer.ConsoleMavenTransferListener; > > import org.apache.maven.cli.transfer.QuietMavenTransferListener; > > import org.apache.maven.cli.transfer.Slf4jMavenTransferListener; > > @@ -131,6 +133,8 @@ public class MavenCli > > > > private DefaultSecDispatcher dispatcher; > > > > + private Slf4jConfiguration slf4jConfiguration = new > > Slf4jSimpleConfiguration(); + > > > > public MavenCli() > > { > > > > this( null ); > > > > @@ -306,24 +310,24 @@ public class MavenCli > > > > if ( cliRequest.debug ) > > { > > > > cliRequest.request.setLoggingLevel( > > MavenExecutionRequest.LOGGING_LEVEL_DEBUG );> > > - System.setProperty( "org.slf4j.simpleLogger.defaultLogLevel", > > "debug" ); + slf4jConfiguration.setRootLoggerLevel( > > MavenExecutionRequest.LOGGING_LEVEL_DEBUG );> > > } > > else if ( cliRequest.quiet ) > > { > > > > cliRequest.request.setLoggingLevel( > > MavenExecutionRequest.LOGGING_LEVEL_ERROR );> > > - System.setProperty( "org.slf4j.simpleLogger.defaultLogLevel", > > "error" ); + slf4jConfiguration.setRootLoggerLevel( > > MavenExecutionRequest.LOGGING_LEVEL_ERROR );> > > } > > else > > { > > > > cliRequest.request.setLoggingLevel( > > MavenExecutionRequest.LOGGING_LEVEL_INFO );> > > - System.setProperty( "org.slf4j.simpleLogger.defaultLogLevel", > > "info" ); + slf4jConfiguration.setRootLoggerLevel( > > MavenExecutionRequest.LOGGING_LEVEL_INFO );> > > } > > > > if ( cliRequest.commandLine.hasOption( CLIManager.LOG_FILE ) ) > > { > > > > File logFile = new File( > > cliRequest.commandLine.getOptionValue( CLIManager.LOG_FILE ) > > ); logFile = resolveFile( logFile, > > cliRequest.workingDirectory ); > > > > - System.setProperty( "org.slf4j.simpleLogger.logFile", > > logFile.getAbsolutePath() ); + > > slf4jConfiguration.setLoggerFile( logFile ); > > > > try > > { > > > > PrintStream ps = new PrintStream( new FileOutputStream( > > logFile ) ); > > > > http://git-wip-us.apache.org/repos/asf/maven/blob/39e11cf2/maven-embedder/ > > src/main/java/org/apache/maven/cli/logging/AbstractSlf4jConfiguration.java > > ---------------------------------------------------------------------- > > diff --git > > a/maven-embedder/src/main/java/org/apache/maven/cli/logging/AbstractSlf4j > > Configuration.java > > b/maven-embedder/src/main/java/org/apache/maven/cli/logging/AbstractSlf4j > > Configuration.java new file mode 100644 > > index 0000000..2b2ef6d > > --- /dev/null > > +++ > > b/maven-embedder/src/main/java/org/apache/maven/cli/logging/AbstractSlf4j > > Configuration.java @@ -0,0 +1,46 @@ > > +package org.apache.maven.cli.logging; > > + > > +/* > > + * 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.slf4j.Logger; > > +import org.slf4j.LoggerFactory; > > + > > +/** > > + * Abstract implementation. > > + * > > + * @author Hervé Boutemy > > + */ > > +public class AbstractSlf4jConfiguration > > + implements Slf4jConfiguration > > +{ > > + private final Logger logger = LoggerFactory.getLogger( > > AbstractSlf4jConfiguration.class ); + > > + public void setRootLoggerLevel( int level ) > > + { > > + logger.warn( "setRootLoggerLevel: operation not supported" ); > > + } > > + > > + public void setLoggerFile( File output ) > > + { > > + logger.warn( "setLoggerFile: operation not supported" ); > > + } > > +} > > > > http://git-wip-us.apache.org/repos/asf/maven/blob/39e11cf2/maven-embedder/ > > src/main/java/org/apache/maven/cli/logging/Slf4jConfiguration.java > > ---------------------------------------------------------------------- > > diff --git > > a/maven-embedder/src/main/java/org/apache/maven/cli/logging/Slf4jConfigur > > ation.java > > b/maven-embedder/src/main/java/org/apache/maven/cli/logging/Slf4jConfigur > > ation.java new file mode 100644 > > index 0000000..c988bd8 > > --- /dev/null > > +++ > > b/maven-embedder/src/main/java/org/apache/maven/cli/logging/Slf4jConfigur > > ation.java @@ -0,0 +1,35 @@ > > +package org.apache.maven.cli.logging; > > + > > +/* > > + * 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; > > + > > +/** > > + * Interface for configuration operations on loggers, which are not > > available in slf4j, then require per-slf4f-binding + * implementation. > > + * > > + * @author Hervé Boutemy > > + */ > > +public interface Slf4jConfiguration > > +{ > > + void setRootLoggerLevel( int level ); > > + > > + void setLoggerFile( File output ); > > +} > > > > http://git-wip-us.apache.org/repos/asf/maven/blob/39e11cf2/maven-embedder/ > > src/main/java/org/apache/maven/cli/logging/impl/Slf4jSimpleConfiguration.j > > ava ---------------------------------------------------------------------- > > diff --git > > a/maven-embedder/src/main/java/org/apache/maven/cli/logging/impl/Slf4jSim > > pleConfiguration.java > > b/maven-embedder/src/main/java/org/apache/maven/cli/logging/impl/Slf4jSim > > pleConfiguration.java new file mode 100644 > > index 0000000..c5d60d8 > > --- /dev/null > > +++ > > b/maven-embedder/src/main/java/org/apache/maven/cli/logging/impl/Slf4jSim > > pleConfiguration.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.AbstractSlf4jConfiguration; > > +import org.apache.maven.cli.logging.Slf4jConfiguration; > > +import org.apache.maven.execution.MavenExecutionRequest; > > +import org.codehaus.plexus.component.annotations.Component; > > + > > +/** > > + * Configuration for slf4j-simple. > > + * > > + * @author Hervé Boutemy > > + */ > > +@Component( role = Slf4jConfiguration.class ) > > +public class Slf4jSimpleConfiguration > > + extends AbstractSlf4jConfiguration > > +{ > > + public void setRootLoggerLevel( int level ) > > + { > > + String value = "info"; > > + switch ( level ) > > + { > > + case MavenExecutionRequest.LOGGING_LEVEL_DEBUG: > > + value = "debug"; > > + break; > > + > > + case MavenExecutionRequest.LOGGING_LEVEL_INFO: > > + value = "info"; > > + break; > > + > > + case MavenExecutionRequest.LOGGING_LEVEL_ERROR: > > + value = "error"; > > + break; > > + } > > + System.setProperty( "org.slf4j.simpleLogger.defaultLogLevel", > > value ); + } > > + > > + public void setLoggerFile( File output ) > > + { > > + System.setProperty( "org.slf4j.simpleLogger.logFile", > > output.getAbsolutePath() ); + } > > +} --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
