We have the following requirements:

There is a servlet that serves as a front end to many disparate EJBs.  The 
servlet reads the request parameters , decides which EJB they tell it to 
invoke, invoke that EJB from a JNDI lookup on the server.  Currently this is 
implemented on WebLogic, but we are trying to port it to JBoss.  And we'd also 
like it to use log4j2 rather than log4j.

Both WebLogic and JBoss, and all application servers that I know of, have the 
same relationship to log4j:

There is one Configuration per class loader.  That seems to be an immutable 
rule.  A Web App deployed in a War file has its own class loader.  An 
enterprise application deployed in an EAR file has its own class loader.  An 
EJB deployed as an EJB JAR seems to use the container's class loader.  

But here is the rub:
We would like to have separate deployment of the EJBs.  These deployments in 
our organization are wrapped in RPMs , and they deploy the JEE archive (WAR, 
EAR, or EJB JAR) to the server using some script contained in the RPM.  Once 
deployed, the rpm postinstall script must also deploy the logging configuration 
file somewhere.  In order to achieve this separate deployment of EJBs, we have 
basically two choices: 

1) Maintain the logging configuration of the master servlet webapp manually, 
adding appenders and loggers to the configuration file that also contains 
loggers and appenders for all the other EJBs run from this servlet and 
separately from the deployment of the EJB itself.

2) Develop some sort of scheme where each EJB "owns" a temporary logging 
configuration file in an intermediate directory.  When an RPM for one of the 
separately deployable EJBs is installed, launch a program that reads all the 
logging configuration files in the intermediate directory and writes out a new 
config file for the master servlet that includes the configs for all of these 
EJBs.  

In fact we have such a system already, written in-house many years ago, based 
on log4j-1.x.  It's rather crude, but it works.

Is there a better way to do this in log4j2?  Is there a way to launch some sort 
of Builder that reads in a Configuration file, allows modification of the 
Configuration loaded and then writes the modified Configuration back to a disk 
file.  This would then cause the LoggerContext to update itself.


---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-user-h...@logging.apache.org

Reply via email to