Author: olamy
Date: Wed Dec 21 17:23:03 2011
New Revision: 1221816

URL: http://svn.apache.org/viewvc?rev=1221816&view=rev
Log:
[MTOMCAT-110] Support Slf4j bridge logger.

Modified:
    
tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java
    
tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7RunnerCli.java

Modified: 
tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java
URL: 
http://svn.apache.org/viewvc/tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java?rev=1221816&r1=1221815&r2=1221816&view=diff
==============================================================================
--- 
tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java
 (original)
+++ 
tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java
 Wed Dec 21 17:23:03 2011
@@ -32,6 +32,8 @@ import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
 import java.net.URL;
 import java.util.HashMap;
 import java.util.Map;
@@ -87,6 +89,8 @@ public class Tomcat7Runner
 
     public File extractDirectoryFile;
 
+    public String loggerName;
+
     Catalina container;
 
     Tomcat tomcat;
@@ -107,6 +111,11 @@ public class Tomcat7Runner
 
         PasswordUtil.deobfuscateSystemProps();
 
+        if ( loggerName != null && loggerName.length() > 0 )
+        {
+            installLogger( loggerName );
+        }
+
         this.extractDirectoryFile = new File( this.extractDirectory );
 
         debugMessage( "use extractDirectory:" + extractDirectoryFile.getPath() 
);
@@ -533,4 +542,34 @@ public class Tomcat7Runner
     {
         return Boolean.parseBoolean( runtimeProperties.getProperty( 
ENABLE_NAMING_KEY, Boolean.FALSE.toString() ) );
     }
+
+    private void installLogger( String loggerName )
+        throws SecurityException, NoSuchMethodException, 
IllegalArgumentException, IllegalAccessException,
+        InvocationTargetException
+    {
+        if ( "slf4j".equals( loggerName ) )
+        {
+
+            try
+            {
+                // Check class is available
+                final Class<?> clazz = Class.forName( 
"org.slf4j.bridge.SLF4JBridgeHandler" );
+
+                // Remove all JUL handlers
+                java.util.logging.LogManager.getLogManager().reset();
+
+                // Install slf4j bridge handler
+                final Method method = clazz.getMethod( "install", null );
+                method.invoke( null );
+            }
+            catch ( ClassNotFoundException e )
+            {
+                System.out.println( "WARNING: issue configuring slf4j jul 
bridge, skip it" );
+            }
+        }
+        else
+        {
+            System.out.println( "WARNING: loggerName " + loggerName + " not 
supported, skip it" );
+        }
+    }
 }

Modified: 
tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7RunnerCli.java
URL: 
http://svn.apache.org/viewvc/tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7RunnerCli.java?rev=1221816&r1=1221815&r2=1221816&view=diff
==============================================================================
--- 
tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7RunnerCli.java
 (original)
+++ 
tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7RunnerCli.java
 Wed Dec 21 17:23:03 2011
@@ -84,6 +84,9 @@ public class Tomcat7RunnerCli
     static Option extractDirectory = OptionBuilder.withArgName( 
"extractDirectory" ).hasArg().withDescription(
         "path to extract war content default value .extract" ).create( 
"extractDirectory" );
 
+    static Option loggerName = OptionBuilder.withArgName( "loggerName" 
).hasArg().withDescription(
+        "logger to use: slf4j to use slf4j bridge on top of jul" ).create( 
"loggerName" );
+
 
     static Options options = new Options();
 
@@ -92,7 +95,7 @@ public class Tomcat7RunnerCli
         options.addOption( httpPort ).addOption( httpsPort ).addOption( 
ajpPort ).addOption( serverXmlPath ).addOption(
             resetExtract ).addOption( help ).addOption( debug ).addOption( 
sysProps ).addOption(
             httpProtocol ).addOption( clientAuth ).addOption( keyAlias 
).addOption( obfuscate ).addOption(
-            extractDirectory );
+            extractDirectory ).addOption( loggerName );
     }
 
 
@@ -185,6 +188,11 @@ public class Tomcat7RunnerCli
             tomcat7Runner.extractDirectory = line.getOptionValue( 
extractDirectory.getOpt() );
         }
 
+        if ( line.hasOption( loggerName.getOpt() ) )
+        {
+            tomcat7Runner.loggerName = line.getOptionValue( 
loggerName.getOpt() );
+        }
+
         // here we go
         tomcat7Runner.run();
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to