You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by David Main <d....@att.net> on 2006/02/17 20:59:36 UTC

[m2] jetty6 plugin & log4j

Hello all -

Could anyone help me to understand how to change the log level that  
the maven-jetty6-plugin uses?  I would like to put debug logging  
statements into my code, but then I can't seem to figure out how to  
get the plugin to change from its default info level.  I would also  
like to set different logging levels on package name.

Note also that I am using the Spring framework.  So first I tried  
using its Log4jConfigListener web util class in web.xml and pointing  
it at my log4j.properties file.  Info messages appeared indicating  
that it was alive and had read my configuration:

    929 [main] INFO /myapp - Initializing Log4J from [/Users/davidm/ 
dev/myapp/src/main/resources/webapp/WEB-INF/log4j.properties]

But no changes were evident in the logged message, neither in format  
nor level.

Then I found a posting on Gmane that indicated you can give Jetty  
your own log4j.properties file by configuring a systemProperty named  
"log4j.configuration", which I did in pom.xml.  Again, messages  
indicated that Jetty recognized my property setting:

    [INFO] Property log4j.configuration=/WEB-INF/log4j.properties was  
set

but nothing seemed to change the way it logs.  In fact, two lines  
later in the log, there is this message:

    2 [main] INFO org.mortbay.log - Logging to  
org.slf4j.impl.SimpleLogger@c57a6a via org.mortbay.log.Slf4jLog

Here's my (very simple) log4j.properties file:

    log4j.rootLogger=WARN, stdout

    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c 
{1}:%L - %m%n

    log4j.logger.net.sf.hibernate=WARN
    log4j.logger.net.sf.hibernate.type=WARN
    log4j.logger.org.springframework=WARN

I read Jetty's tutorial on logging, but it :
http://www.mortbay.org/jetty/tut/logging.html

Finally, I gave the "-DDEBUG" and "-DDEBUG_PATTERNS=net.sf.hibernate"  
a shot, but these too seemed to be ignored.

I get the feeling that I am clashing somehow with Jetty's own  
logging.  Can anyone help me unravel this?

Thanks
--David

Re: [m2] jetty6 plugin & log4j

Posted by "thomas.risberg" <th...@tridb.com>.
I had the same problem using jetty6, spring and log4j.  Solved it by setting
a system property specifying Log4J as the logger for commons logging.  Here
is my plugin configuration:

            <plugin>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>maven-jetty6-plugin</artifactId>
                <configuration>
                    <scanIntervalSeconds>10</scanIntervalSeconds>
                    <contextPath>/</contextPath>
                    <systemProperties>
                       <systemProperty>
                         <name>org.apache.commons.logging.Log</name>
                        
<value>org.apache.commons.logging.impl.Log4JLogger</value>
                       </systemProperty>
                    </systemProperties>
                </configuration>
                <dependencies>
                   <dependency>
                     <groupId>commons-logging</groupId>
                     <artifactId>commons-logging</artifactId>
                     <version>1.0.4</version>
                   </dependency>
                   <dependency>
                     <groupId>log4j</groupId>
                     <artifactId>log4j</artifactId>
                     <version>1.2.13</version>
                   </dependency>
                 </dependencies>
            </plugin>

--
View this message in context: http://www.nabble.com/-m2-jetty6-plugin-log4j-t1142952.html#a3773827
Sent from the Maven - Users forum at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: [m2] jetty6 plugin & log4j

Posted by Jan Bartel <ja...@mortbay.com>.
David,

Sorry for the very late response. I've made some changes to the 
maven-jetty6-plugin recently that will make it a lot easier to 
substitute logging at runtime.

Currently, this is only checked in to svn, but I will push a snapshot
later today.

Here's a snippet from the documentation:

"Jetty itself has no dependencies on a particular logging framework, 
using a built-in logger which outputs to stderr. However, to allow jetty6 to 
integrate with other logging mechanisms, if an http://www.slf4j.org
log implementation is detected in the classpath, it will use it in 
preference to the built-in logger.

The JSP engine used by jetty6 does however have logging dependencies. 
If you are using JSP 2.0 (ie you are running in a JVM version < 1.5), 
the JSP engine depends on commons-logging. A default commons-logging 
logger will be provided by the plugin using a combination of the 
http://www.slf4j.org/manual.html and the http://www.slf4j.org/api/org/slf4j/impl/SimpleLogger.html
implementation, which logs all messages INFO level and above.  
You can override this and provide your own commons-logging 
delegated logger by using a plugin <dependency>:


      <plugin>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>maven-jetty6-plugin</artifactId>
        <configuration>
        ...
        </configuration>
        <dependencies>
          <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.0.4</version>
          </dependency>
          <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.13</version>
          </dependency>
        </dependencies>
      </plugin>


Alternatively, you can still bridge commons-logging to slf4j and 
just select a different SLF4J implementation by using a plugin <dependency> 
and providing a different slf4j implementation jar:

      <plugin>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>maven-jetty6-plugin</artifactId>
        <configuration>
        ...
        </configuration>
        <dependencies>
          <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>nlog4j</artifactId>
            <version>1.1.24</version>
          </dependency>
        </dependencies>
      </plugin>


If you are using JSP2.1 (ie you are running in a JVM >= 1.5), then the 
JSP engine has no particular logging dependencies."


cheers
Jan



David Main wrote:
> Hello all -
> 
> Could anyone help me to understand how to change the log level that  the 
> maven-jetty6-plugin uses?  I would like to put debug logging  statements 
> into my code, but then I can't seem to figure out how to  get the plugin 
> to change from its default info level.  I would also  like to set 
> different logging levels on package name.
> 
> Note also that I am using the Spring framework.  So first I tried  using 
> its Log4jConfigListener web util class in web.xml and pointing  it at my 
> log4j.properties file.  Info messages appeared indicating  that it was 
> alive and had read my configuration:
> 
>    929 [main] INFO /myapp - Initializing Log4J from [/Users/davidm/ 
> dev/myapp/src/main/resources/webapp/WEB-INF/log4j.properties]
> 
> But no changes were evident in the logged message, neither in format  
> nor level.
> 
> Then I found a posting on Gmane that indicated you can give Jetty  your 
> own log4j.properties file by configuring a systemProperty named  
> "log4j.configuration", which I did in pom.xml.  Again, messages  
> indicated that Jetty recognized my property setting:
> 
>    [INFO] Property log4j.configuration=/WEB-INF/log4j.properties was  set
> 
> but nothing seemed to change the way it logs.  In fact, two lines  later 
> in the log, there is this message:
> 
>    2 [main] INFO org.mortbay.log - Logging to  
> org.slf4j.impl.SimpleLogger@c57a6a via org.mortbay.log.Slf4jLog
> 
> Here's my (very simple) log4j.properties file:
> 
>    log4j.rootLogger=WARN, stdout
> 
>    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
>    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
>    log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c 
> {1}:%L - %m%n
> 
>    log4j.logger.net.sf.hibernate=WARN
>    log4j.logger.net.sf.hibernate.type=WARN
>    log4j.logger.org.springframework=WARN
> 
> I read Jetty's tutorial on logging, but it :
> http://www.mortbay.org/jetty/tut/logging.html
> 
> Finally, I gave the "-DDEBUG" and "-DDEBUG_PATTERNS=net.sf.hibernate"  a 
> shot, but these too seemed to be ignored.
> 
> I get the feeling that I am clashing somehow with Jetty's own  logging.  
> Can anyone help me unravel this?
> 
> Thanks
> --David


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org