Hi Jerome,
thanks for your suggestions.  They forced me to think deeper.
After fiddling with maven-hpi-plugin 1.92-SNAPSHOT I found the jar:
I had to stick my log formatter into maven/boot/plexus-classworlds-2.4.jar.
Weird, but now it does what I want.
I captured my findings on this Wiki page:
https://wiki.jenkins-ci.org/display/JENKINS/custom+log+formatter+for+hpi-run
Regards,
-Max


On 12/01/2012 08:29 AM, Jerome Lacoste wrote:
On Thursday, November 29, 2012 7:30:13 PM UTC+1, Max Spring wrote:

    I am able to make my logging.properties active.
    That's not the problem.

    I'm unable get my custom formatter being used!
    This seems to be more of a class loader issue.

    Using MAVEN_OPTS works equally to using -D on the command line.


Are you using the maven2 jenkins plugin ?

Doesn't that one bootstrap maven into it's own classloader ? Your class would 
maybe not be available there.

Have you tried
1- adding your class in a jar under your MAVEN_HOME/lib/ext
    run mvn in the command line using your option and overriden logger
2- run again this time from jenkins

It might also work by placing the class into the maven2 plugin instead. I am 
not sure how the classloading is implemented in the plugin.

Maybe olivier lamy can answer that.

Jerome


    -Max


    On 11/28/2012 03:43 PM, Kohsuke Kawaguchi wrote:
     > On 11/27/2012 06:03 PM, Max Spring wrote:
     >> I'm struggling getting a custom formatter to play under hpi:run.
     >>
     >> I can pass my own logging.properties on the command line:
     >>
     >>     mvn hpi:run -Djava.util.logging.config.file=my-logging.properties
     >>
     >> but my formatter doesn't get used.
     >
     > I haven't read the code, but I suspect java.util.logging is using the 
system property value before Maven gets to process its command line arguments and 
makes the corresponding System.setProperty(...) call.
     >
     > Try setting it via MAVEN_OPTS env variable.
     >
     >>
     >> I can switch on/off the built-in XMLFormatter.
     >> This proves that my-logging.properties are active:
     >>
     >>     java.util.logging.ConsoleHandler.formatter = org.example.MyFormatter
     >>     # java.util.logging.ConsoleHandler.formatter = 
java.util.logging.XMLFormatter
     >>
     >> I suspect this is similar to this problem:
     >>
     >> 
http://jenkins.361315.n4.nabble.com/how-to-set-logging-properties-td3479817.html 
<http://jenkins.361315.n4.nabble.com/how-to-set-logging-properties-td3479817.html>
     >>
     >> But I can't figure out how to make my formatter class visible.
     >> Adding it to the Jenkins war doesn't do the trick here.
     >>
     >> Has anyone solved this?
     >>
     >> Thanks!
     >> -Max
     >>
     >
     >


Reply via email to