Hi Jake, I tried the CRS example that provided in this URL ( http://community.jboss.org/wiki/Log4jRepositorySelector). It does work in the beginning but not very stable. For instance, after restarted the instance a few times, it stop writing in one of the log.
Appreciate if you can provide a better example. Thank you. Regards, Wooi Meng On Thu, Apr 1, 2010 at 12:49 AM, Jacob Kjome <[email protected]> wrote: > For applications deployed as EAR files, you can't expect a webapp's > WEB-INF/lib/log4j.jar to be picked up by EJB's deployed outside that > webapp. In that case, you'd need to place it in some common upper level > (not at all in WEB-INF/lib) where both the webapp and EJB can see it. Of > course, unless you have a server that allows you to manage the classloading > behavior of an EAR file (i.e., set parent-last on the EAR as a whole), not > just a WAR file, then you can't depend on classloading. > > This is where logger repository selectors come in. You can have a global > log4j.jar file (i.e. in the server's global classpath) and still separate > logger repositories. You just need to use some environmental value as the > key to the logger repositories in the selector, such as thread, classloader, > or JNDI. I think you might benefit from the latter. One already exists in > the log4j-sandbox tagged as Alpha3. See the article I pointed to in my > previous response for details. > > There are caveats and you may find that shared libraries using statically > defined loggers (e.g., 'static final Logger logger = > Logger.getLogger("MyLoggerName")') end up logging to a different logger > repository than you expected. This occurs because the logger is only looked > up once, so the logger repository used will be the first one looked up. If > one webapp looks it up first, it's logger repository will be used for the > life of the library (i.e., until server restart). Other apps using the > library will have that library's logs going to the first application's > logger repository. > > I know of no good way around this that I know of. Maybe Ceki has come up > with a better way over the years in his work with Logback? You might ask on > that mailing list. > > Jake > > On Wed, 31 Mar 2010 10:35:23 +0800 > > WM YEOH <[email protected]> wrote: > >> Hi Jake, >> >> Thank you for the article. >> >> I tried to put the log4j jar under application classloader level as well >> as war WEB-INF/lib, and set the delegate to false in sun-web.xml, and that >> works fine. However, I got class not found exception when came across EJB >> classes. I even specified the log4j jar in manifest file but no luck. >> >> I couldn't find any useful information how to configure sun apps to load >> parent-last. I am wondering is it no other way to have EJB classes >> reference >> log4j? Appreciate if you can again point me to the right direction. >> >> Thank you. >> >> Regards, >> Wooi Meng >> >> >> >> On Mon, Mar 29, 2010 at 10:57 PM, Jacob Kjome <[email protected]> wrote: >> >> Research Logger Repository Selectors. Here's a resource to get you >>> started.... >>> http://wiki.apache.org/logging-log4j/AppContainerLogging >>> >>> Jake >>> >>> >>> >>> On Mon, 29 Mar 2010 17:51:56 +0800 >>> WM YEOH <[email protected]> wrote: >>> >>> Hi there, >>>> >>>> Current setup, >>>> - App server - Sun Java System Application Server 9.1_01 >>>> - deploy one ear(own war) and another war applications in the same stand >>>> alone instance >>>> >>>> I have setup in a way that each application has its own log4j.xml but >>>> assign >>>> to different log files, for instance, log4jA.xml -> A.log and log4jB.xml >>>> -> >>>> B.log. However, the debug message only written into one log file instead >>>> of >>>> its designated log file. I could not package the log4j jar into the war >>>> as >>>> other classes in separate jar (within ear) used logger. Therefore, I >>>> have >>>> to >>>> specified log4j jar in the server classpath. Which I believed that would >>>> be >>>> the issue that causing the debug message not written to the correct log >>>> file. >>>> >>>> I am wondering is there any settings to solve the problem that I faced. >>>> Or >>>> is there any alternatives to solve the problem. >>>> >>>> Appreciate anyone help me to solve the problem as soon as possible. >>>> Please >>>> let me know if you need further information. >>>> >>>> Thank you. >>>> >>>> Regards >>>> >>>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [email protected] >>> For additional commands, e-mail: [email protected] >>> >>> >>> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > >
