The Log4j API is going to look for its implementation. It does that by looking for a property file using ClassLoader.getResources(). If that file cannot be located because it is in a different ClassLoader then you will have problems.
When you say it doesn’t work, what exactly is happening? Ralph > On Nov 3, 2014, at 12:51 PM, Paul Benedict <[email protected]> wrote: > > The first smart thing to do in Wildfly 8.1 is install a common instance of > log4j2. You do this by creating a module. Here are my steps: > > 1. Go to <WildFlyHome>/modules > 2. Create folders org/apache/log4j2/main > 3. Drop in the api jar. > 4. Create a module.xml with this content: > > <?xml version="1.0" encoding="UTF-8"?> > <module xmlns="urn:jboss:module:1.3" name="org.apache.log4j2"> > <resources> > <resource-root path="log4j-api-2.1.jar"/> > </resources> > </module> > > PS: I could have also dropped in the "core" jar but I am being > conservative. Since I can't get anything to work, this is the minimal. > > Then inside my ejb-jar project, I create myself a > META-INF/jboss-deployment-descriptor.xml file like this: > > <jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0"> > <deployment> > <dependencies> > <module name="org.apache.log4j2" /> > </dependencies> > </deployment> > </jboss-deployment-structure> > > That should automatically map the jar into my module's classpath. I've done > this before but I am obviously missing something because it's not working. > If anyone can help by following these steps and figuring this out, I'd be > happy to hear someone's success story. > > Cheers, > Paul > > On Sat, Nov 1, 2014 at 7:00 PM, Ralph Goers <[email protected]> >> wrote: >> >>> I am not aware that we have implemented any specific support for EARs. >>> That said, I am not sure we need to. I’ve also looked at the Log4j 1.x code >>> and don’t see anything specific to supporting META-INF or EARs. >>> >>> Log4j will load log4j2.xml from the classpath, so you should be able to >>> do something like what is described at >>> https://developer.jboss.org/wiki/HowToPutAnExternalFileInTheClasspath < >>> https://developer.jboss.org/wiki/HowToPutAnExternalFileInTheClasspath>. >>> I believe you can also place it in the /lib directory or whatever directory >>> is defined in the library-directory element of the deployment descriptor. >>> See >>> http://javahowto.blogspot.com/2006/10/use-library-directory-in-javaee-5-apps.html >>> < >>> http://javahowto.blogspot.com/2006/10/use-library-directory-in-javaee-5-apps.html >>>> . >>> >>> What app server are you using? >>> >>> Ralph >>> >>> >>> >>>> On Nov 1, 2014, at 10:56 AM, Paul Benedict <[email protected]> >>> wrote: >>>> >>>> When I used log4j 1.x, I could put my log4j.xml in the >>> <EarRoot>/META-INF >>>> folder and it was found. I did try this with log4j 2.0.2 and the >>>> configuration was not found. >>>> >>>> I read this but it only talks about WARs. I don't have a WAR but an EAR >>>> with EJB modules. >>>> http://logging.apache.org/log4j/2.x/manual/webapp.html >>>> >>>> So is this feature missing in 2.x? Or did I do something wrong? >>>> >>>> Cheers, >>>> Paul >>> >> --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
