[QFJ-214] Does SLF4J/Log4J combo ignore changes to the log4j.properties file? Created: 21/Jul/07 Updated: 27/Jul/07 Resolved: 27/Jul/07 |
|
Status: | Closed |
Project: | QuickFIX/J |
Component/s: | Engine |
Affects Version/s: | 1.2.1 |
Fix Version/s: | None |
Type: | Other | Priority: | Default |
Reporter: | Toli Kuznets | Assignee: | Steve Bate |
Resolution: | Fixed | Votes: | 0 |
Labels: | None |
Description |
I have an app that's using SLF4JLogFactory and i have the slf4j-logj4 jar in the path, so in the end it's using log4j to print log messages. The entries in the log4j.properties file are parsed and used when the app starts up, so whatever i have setup drives the filtering of the output. Anybody else seeing something similar? I couldn't trace through in the QFJ code where that would make a difference - seems that SLF4J/Log4J would handle that on their own. Just wondering if maybe we are not setting SLF4J/Log4J up correctly. |
Comments |
Comment by Jörg Thönnes [ 21/Jul/07 ] |
Toli, I think this behaviour is standard. We use plain log4j in our processes and log4j reads On the other hand, e.g. the JBoss app server refreshes properties regularly. Actually, this depends how log4j is used programmatically. I remember some methods / classes in the API So I guess this should be handled inside the SL4J adapter code. Did you check whether they support some Cheers, Jörg |
Comment by Brad Harvey [ 23/Jul/07 ] |
Jörg is correct. I think you need to use http://logging.apache.org/log4j/docs/api/org/apache/log4j/PropertyConfigurator.html#configureAndWatch(java.lang.String) to make it reread the property file. I suspect you can just do this first thing in your application. It should not be QFJ that does this though unless it is optional - otherwise other environments that already do this (eg, JBoss) might not behave as expected. Cheers, |
Comment by Steve Bate [ 27/Jul/07 ] |
Toli, I agree with Brad's comments. Does that approach sound OK to you? |
Comment by Toli Kuznets [ 27/Jul/07 ] |
Hmm, i think we are using conifgureAndWatch in our app ourselves (we use Log4J directly): http://trac.marketcetera.org/trac.fcgi/browser/platform/trunk/core/src/main/java/org/marketcetera/core/LoggerAdapter.java#L41 but it's been over a year since i've touched or looked at the logging code, so maybe there's some weird interplay of how we start the log4j and how QFJ does the same through SLF4J. but it does sound like something is incorrect in our own setup. i'll investigate a bit more and let you guys know. thanks for the advice. |