You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by st...@apache.org on 2012/12/12 11:35:19 UTC
git commit: Basic experiment with JUL.
Updated Branches:
refs/heads/logging/slf4j-jul [created] cb69308a8
Basic experiment with JUL.
- Should be the same as 7f9e280522379fc0f3ac09f4d81e8188cdb54192 only with JUL as the backing impl
Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/cb69308a
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/cb69308a
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/cb69308a
Branch: refs/heads/logging/slf4j-jul
Commit: cb69308a848105c0c28d49bdf126008ea5304a4d
Parents: c8536bf
Author: Stephen Connolly <st...@gmail.com>
Authored: Wed Dec 12 10:34:52 2012 +0000
Committer: Stephen Connolly <st...@gmail.com>
Committed: Wed Dec 12 10:34:52 2012 +0000
----------------------------------------------------------------------
apache-maven/pom.xml | 3 +-
.../src/conf/logging/simplelogger.properties | 8 -
build.xml | 2 +-
maven-embedder/pom.xml | 7 +-
.../main/java/org/apache/maven/cli/MavenCli.java | 175 ++++++++++-----
pom.xml | 4 +-
6 files changed, 126 insertions(+), 73 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/maven/blob/cb69308a/apache-maven/pom.xml
----------------------------------------------------------------------
diff --git a/apache-maven/pom.xml b/apache-maven/pom.xml
index ce547e7..b2c06d3 100644
--- a/apache-maven/pom.xml
+++ b/apache-maven/pom.xml
@@ -85,7 +85,8 @@
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
- <artifactId>slf4j-simple</artifactId>
+ <artifactId>slf4j-jdk14</artifactId>
+ <version>1.7.2</version>
</dependency>
</dependencies>
http://git-wip-us.apache.org/repos/asf/maven/blob/cb69308a/apache-maven/src/conf/logging/simplelogger.properties
----------------------------------------------------------------------
diff --git a/apache-maven/src/conf/logging/simplelogger.properties b/apache-maven/src/conf/logging/simplelogger.properties
deleted file mode 100644
index cd11ce1..0000000
--- a/apache-maven/src/conf/logging/simplelogger.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-org.slf4j.simpleLogger.defaultLogLevel=info
-org.slf4j.simpleLogger.showDateTime=false
-org.slf4j.simpleLogger.showThreadName=false
-org.slf4j.simpleLogger.showLogName=false
-org.slf4j.simpleLogger.logFile=System.out
-org.slf4j.simpleLogger.levelInBrackets=true
-org.slf4j.simpleLogger.log.Sisu=info
-org.slf4j.simpleLogger.warnLevelString=WARNING
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/maven/blob/cb69308a/build.xml
----------------------------------------------------------------------
diff --git a/build.xml b/build.xml
index 4bbbec9..d978b25 100644
--- a/build.xml
+++ b/build.xml
@@ -34,7 +34,7 @@ END SNIPPET: ant-bootstrap -->
<property name="distributionDirectory" value="apache-maven"/>
<property name="distributionId" value="apache-maven"/>
<property name="distributionShortName" value="Maven"/>
- <property name="distributionName" value="Apache Maven"/>
+ <property name="distributionName" value="Apache Maven (java.util.logging)"/>
<property name="it.workdir.version" value="3.0.x" />
<target name="initTaskDefs">
http://git-wip-us.apache.org/repos/asf/maven/blob/cb69308a/maven-embedder/pom.xml
----------------------------------------------------------------------
diff --git a/maven-embedder/pom.xml b/maven-embedder/pom.xml
index 587398f..e282b46 100644
--- a/maven-embedder/pom.xml
+++ b/maven-embedder/pom.xml
@@ -10,7 +10,8 @@
governing permissions and limitations under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
@@ -74,6 +75,10 @@
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-jdk14</artifactId>
+ </dependency>
<!-- CLI -->
<dependency>
<groupId>commons-cli</groupId>
http://git-wip-us.apache.org/repos/asf/maven/blob/cb69308a/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..c642fd5 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
@@ -23,6 +23,9 @@ import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashMap;
@@ -30,6 +33,12 @@ import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.StringTokenizer;
+import java.util.logging.ConsoleHandler;
+import java.util.logging.Formatter;
+import java.util.logging.Handler;
+import java.util.logging.Level;
+import java.util.logging.LogRecord;
+import java.util.logging.SimpleFormatter;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.ParseException;
@@ -116,9 +125,9 @@ public class MavenCli
private LoggerManager plexusLoggerManager;
private ILoggerFactory slf4jLoggerFactory;
-
+
private Logger slf4jLogger;
-
+
private EventSpyDispatcher eventSpyDispatcher;
private ModelProcessor modelProcessor;
@@ -263,7 +272,8 @@ public class MavenCli
throws Exception
{
//
- // Parsing errors can happen during the processing of the arguments and we prefer not having to check if the logger is null
+ // Parsing errors can happen during the processing of the arguments and we prefer not having to check if the
+ // logger is null
// and construct this so we can use an SLF4J logger everywhere.
//
slf4jLogger = new Slf4jStdoutLogger();
@@ -292,7 +302,7 @@ public class MavenCli
System.out.println( CLIReportingUtils.showVersion() );
throw new ExitException( 0 );
}
- }
+ }
//
// All logging is handled by SFL4J
@@ -306,24 +316,23 @@ public class MavenCli
if ( cliRequest.debug )
{
cliRequest.request.setLoggingLevel( MavenExecutionRequest.LOGGING_LEVEL_DEBUG );
- System.setProperty( "org.slf4j.simpleLogger.defaultLogLevel", "debug" );
+ setRootLoggerLevel( Level.FINEST );
}
else if ( cliRequest.quiet )
{
cliRequest.request.setLoggingLevel( MavenExecutionRequest.LOGGING_LEVEL_ERROR );
- System.setProperty( "org.slf4j.simpleLogger.defaultLogLevel", "error" );
+ setRootLoggerLevel( Level.SEVERE );
}
else
{
cliRequest.request.setLoggingLevel( MavenExecutionRequest.LOGGING_LEVEL_INFO );
- System.setProperty( "org.slf4j.simpleLogger.defaultLogLevel", "info" );
+ setRootLoggerLevel( 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() );
try
{
PrintStream ps = new PrintStream( new FileOutputStream( logFile ) );
@@ -343,6 +352,47 @@ public class MavenCli
slf4jLogger = slf4jLoggerFactory.getLogger( this.getClass().getName() );
}
+ public void setRootLoggerLevel( Level level )
+ {
+ java.util.logging.ConsoleHandler consoleHandler = new ConsoleHandler();
+ consoleHandler.setLevel( level );
+ consoleHandler.setFormatter( new Formatter()
+ {
+ private String lineSeparator = System.getProperty( "line.separator" );
+
+ @Override
+ public String format( LogRecord record )
+ {
+ StringBuilder sb = new StringBuilder();
+ sb.append( '[' );
+ sb.append( record.getLevel().getLocalizedName() );
+ sb.append( "] " );
+ sb.append( formatMessage( record ) );
+ sb.append( lineSeparator );
+ if ( record.getThrown() != null )
+ {
+ try
+ {
+ StringWriter sw = new StringWriter();
+ PrintWriter pw = new PrintWriter( sw );
+ record.getThrown().printStackTrace( pw );
+ pw.close();
+ sb.append( sw.toString() );
+ }
+ catch ( Exception ex )
+ {
+ }
+ }
+ return sb.toString();
+ }
+ } );
+ java.util.logging.Logger logger = java.util.logging.Logger.getLogger( "" );
+ for ( Handler h : logger.getHandlers() ) {
+ logger.removeHandler( h );
+ }
+ logger.addHandler( consoleHandler );
+ }
+
private void version( CliRequest cliRequest )
{
if ( cliRequest.debug || cliRequest.commandLine.hasOption( CLIManager.SHOW_VERSION ) )
@@ -383,29 +433,25 @@ public class MavenCli
DefaultPlexusContainer container = null;
- ContainerConfiguration cc = new DefaultContainerConfiguration()
- .setClassWorld( cliRequest.classWorld )
- .setRealm( setupContainerRealm( cliRequest ) )
- .setClassPathScanning( PlexusConstants.SCANNING_INDEX )
- .setAutoWiring( true )
- .setName( "maven" );
+ ContainerConfiguration cc =
+ new DefaultContainerConfiguration().setClassWorld( cliRequest.classWorld ).setRealm( setupContainerRealm( cliRequest ) ).setClassPathScanning( PlexusConstants.SCANNING_INDEX ).setAutoWiring( true ).setName( "maven" );
- container = new DefaultPlexusContainer( cc, new AbstractModule()
- {
+ container = new DefaultPlexusContainer( cc, new AbstractModule()
+ {
- protected void configure()
- {
- bind( ILoggerFactory.class ).toInstance( slf4jLoggerFactory );
- }
+ protected void configure()
+ {
+ bind( ILoggerFactory.class ).toInstance( slf4jLoggerFactory );
+ }
- } );
+ } );
- // NOTE: To avoid inconsistencies, we'll use the TCCL exclusively for lookups
- container.setLookupRealm( null );
+ // NOTE: To avoid inconsistencies, we'll use the TCCL exclusively for lookups
+ container.setLookupRealm( null );
- container.setLoggerManager( plexusLoggerManager );
+ container.setLoggerManager( plexusLoggerManager );
- customizeContainer( container );
+ customizeContainer( container );
container.getLoggerManager().setThresholds( cliRequest.request.getLoggingLevel() );
@@ -578,7 +624,7 @@ public class MavenCli
{
slf4jLogger.error( "" );
slf4jLogger.error( "For more information about the errors and possible solutions"
- + ", please read the following articles:" );
+ + ", please read the following articles:" );
for ( Map.Entry<String, String> entry : references.entrySet() )
{
@@ -610,8 +656,7 @@ public class MavenCli
}
}
- private void logSummary( ExceptionSummary summary, Map<String, String> references, String indent,
- boolean showErrors )
+ private void logSummary( ExceptionSummary summary, Map<String, String> references, String indent, boolean showErrors )
{
String referenceKey = "";
@@ -675,8 +720,7 @@ public class MavenCli
if ( !userSettingsFile.isFile() )
{
- throw new FileNotFoundException( "The specified user settings file does not exist: "
- + userSettingsFile );
+ throw new FileNotFoundException( "The specified user settings file does not exist: " + userSettingsFile );
}
}
else
@@ -880,7 +924,7 @@ public class MavenCli
if ( quiet )
{
transferListener = new QuietMavenTransferListener();
- }
+ }
else if ( request.isInteractiveMode() && !cliRequest.commandLine.hasOption( CLIManager.LOG_FILE ) )
{
//
@@ -914,20 +958,20 @@ public class MavenCli
userToolchainsFile = MavenCli.DEFAULT_USER_TOOLCHAINS_FILE;
}
- request.setBaseDirectory( baseDirectory ).setGoals( goals )
- .setSystemProperties( cliRequest.systemProperties )
- .setUserProperties( cliRequest.userProperties )
- .setReactorFailureBehavior( reactorFailureBehaviour ) // default: fail fast
- .setRecursive( recursive ) // default: true
- .setShowErrors( showErrors ) // default: false
- .addActiveProfiles( activeProfiles ) // optional
- .addInactiveProfiles( inactiveProfiles ) // optional
- .setExecutionListener( executionListener )
- .setTransferListener( transferListener ) // default: batch mode which goes along with interactive
- .setUpdateSnapshots( updateSnapshots ) // default: false
- .setNoSnapshotUpdates( noSnapshotUpdates ) // default: false
- .setGlobalChecksumPolicy( globalChecksumPolicy ) // default: warn
- .setUserToolchainsFile( userToolchainsFile );
+ request.setBaseDirectory( baseDirectory ).setGoals( goals ).setSystemProperties( cliRequest.systemProperties ).setUserProperties( cliRequest.userProperties ).setReactorFailureBehavior( reactorFailureBehaviour ) // default:
+ // fail
+ // fast
+ .setRecursive( recursive ) // default: true
+ .setShowErrors( showErrors ) // default: false
+ .addActiveProfiles( activeProfiles ) // optional
+ .addInactiveProfiles( inactiveProfiles ) // optional
+ .setExecutionListener( executionListener ).setTransferListener( transferListener ) // default: batch mode which
+ // goes along with
+ // interactive
+ .setUpdateSnapshots( updateSnapshots ) // default: false
+ .setNoSnapshotUpdates( noSnapshotUpdates ) // default: false
+ .setGlobalChecksumPolicy( globalChecksumPolicy ) // default: warn
+ .setUserToolchainsFile( userToolchainsFile );
if ( alternatePomFile != null )
{
@@ -971,18 +1015,17 @@ public class MavenCli
request.setSelectedProjects( projects );
}
- if ( commandLine.hasOption( CLIManager.ALSO_MAKE )
- && !commandLine.hasOption( CLIManager.ALSO_MAKE_DEPENDENTS ) )
+ if ( commandLine.hasOption( CLIManager.ALSO_MAKE ) && !commandLine.hasOption( CLIManager.ALSO_MAKE_DEPENDENTS ) )
{
request.setMakeBehavior( MavenExecutionRequest.REACTOR_MAKE_UPSTREAM );
}
else if ( !commandLine.hasOption( CLIManager.ALSO_MAKE )
- && commandLine.hasOption( CLIManager.ALSO_MAKE_DEPENDENTS ) )
+ && commandLine.hasOption( CLIManager.ALSO_MAKE_DEPENDENTS ) )
{
request.setMakeBehavior( MavenExecutionRequest.REACTOR_MAKE_DOWNSTREAM );
}
else if ( commandLine.hasOption( CLIManager.ALSO_MAKE )
- && commandLine.hasOption( CLIManager.ALSO_MAKE_DEPENDENTS ) )
+ && commandLine.hasOption( CLIManager.ALSO_MAKE_DEPENDENTS ) )
{
request.setMakeBehavior( MavenExecutionRequest.REACTOR_MAKE_BOTH );
}
@@ -999,10 +1042,13 @@ public class MavenCli
request.setLocalRepositoryPath( localRepoProperty );
}
- final String threadConfiguration = commandLine.hasOption( CLIManager.THREADS )
- ? commandLine.getOptionValue( CLIManager.THREADS )
- : request.getSystemProperties().getProperty(
- MavenCli.THREADS_DEPRECATED ); // TODO: Remove this setting. Note that the int-tests use it
+ final String threadConfiguration =
+ commandLine.hasOption( CLIManager.THREADS ) ? commandLine.getOptionValue( CLIManager.THREADS )
+ : request.getSystemProperties().getProperty( MavenCli.THREADS_DEPRECATED ); // TODO: Remove
+ // this setting.
+ // Note that the
+ // int-tests use
+ // it
if ( threadConfiguration != null )
{
@@ -1069,7 +1115,7 @@ public class MavenCli
}
systemProperties.putAll( System.getProperties() );
-
+
// ----------------------------------------------------------------------
// Properties containing info about the currently running version of Maven
// These override any corresponding properties set on the command line
@@ -1118,14 +1164,23 @@ public class MavenCli
static class CliRequest
{
String[] args;
+
CommandLine commandLine;
+
ClassWorld classWorld;
+
String workingDirectory;
+
boolean debug;
+
boolean quiet;
+
boolean showErrors = true;
+
Properties userProperties = new Properties();
+
Properties systemProperties = new Properties();
+
MavenExecutionRequest request;
CliRequest( String[] args, ClassWorld classWorld )
@@ -1148,21 +1203,21 @@ public class MavenCli
}
}
-
+
//
// Customizations available via the CLI
//
-
- protected TransferListener getConsoleTransferListener()
+
+ protected TransferListener getConsoleTransferListener()
{
return new ConsoleMavenTransferListener( System.out );
}
-
+
protected TransferListener getBatchTransferListener()
{
return new Slf4jMavenTransferListener();
}
-
+
protected void customizeContainer( PlexusContainer container )
{
}
@@ -1171,5 +1226,5 @@ public class MavenCli
throws ComponentLookupException
{
return container.lookup( ModelProcessor.class );
- }
+ }
}
http://git-wip-us.apache.org/repos/asf/maven/blob/cb69308a/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index d673939..ae4127e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -212,9 +212,9 @@
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
- <artifactId>slf4j-simple</artifactId>
+ <artifactId>slf4j-jdk14</artifactId>
<version>${slf4jVersion}</version>
- <scope>runtime</scope>
+ <scope>compile</scope>
</dependency>
<!-- Wagon -->
<dependency>