[logback-user] Context selectors useful?
Ceki Gulcu
listid at qos.ch
Thu Nov 27 22:31:54 CET 2008
Hello Lars,
You might want to check out logback 0.9.12-SNAPSHOT. It can be downloaded from
http://logback.qos.ch/dist/logback-0.9.12-SNAPSHOT.tar.gz
I have tested logging separation in a Enterprise Application consisting of a
stateless session and a web-app under JBoss 5.
In this version of logback, if you set up a env-entry for "logback/context-name"
in JNDI, you no longer have to set an additional entry for the configuration
file. For example, if "logback/context-name" is set to "MANGO", then the
associated configuration file is named logback-MANGO.xml by convention. This
makes things a bit easier, especially if you need to configure several EJBs or
several web-apps.
The ejb-jar.xml file in my example reads
<?xml version="1.0"?>
<ejb-jar
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
version="3.0">
<enterprise-beans>
<session>
<ejb-name>Echo</ejb-name>
<env-entry>
<description>JNDI logging context for this app</description>
<env-entry-name>logback/context-name</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>vader</env-entry-value>
</env-entry>
</session>
</enterprise-beans>
</ejb-jar>
and web.xml reads
<web-app id="kenobi" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>kenobi</display-name>
<servlet>
<servlet-name>KenobiServlet</servlet-name>
<servlet-class>ch.qos.KenobiServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>KenobiServlet</servlet-name>
<url-pattern>/kenobi/*</url-pattern>
</servlet-mapping>
<env-entry>
<description>JNDI logging context for this app</description>
<env-entry-name>logback/context-name</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>star</env-entry-value>
</env-entry>
<!-- To refer local EJB's -->
<ejb-local-ref>
<ejb-ref-name>ejb/Echo</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<local-home></local-home>
<local>ch.qos.IEcho</local>
</ejb-local-ref>
</web-app>
While it was easy to get jndi context selector to work in JBoss, I was not able
to make it work under Geronimo. Ironically, because it uses SLF4J internally.
HTH,
Lars Ködderitzsch wrote:
> Hello Ceki,
>
> thanks for the heads up on this issue on the mailing list.
>
> Starting off I'd like to mention that for me the most wanted feature is
> separation of logging from different contexts (e.g. war's, ejb) of of an
> enterprise application (ear), without needing to resort to classloader
> stunts, multiple repeated logging configurations etc.
> That means that the contexts of an enterprise app should be able to use
> the same logging implementation (that is placed in the ear classloader)
> and the same logging configuration, but ultimately the log into
> different log files.
> This way it can be truely sorted out, which context logged which message.
>
> To my knowledge such a thing is supported in neither logging
> implementations.
> Currently I am running this as a hack on log4j, based on a specialized
> appender which switches the underlying log file based on some thread
> local, which in turn is set by a special servlet filter in each web context.
>
> At the time trying logback I thought that context selectors could
> achieve that in a better, more standardized and less hacky way.
> Ultimately I failed at the time and haven't looked back yet at logback.
>
> So back to the question, yes, I would be very much interested in such a
> feature - be it contexts selectors or something else.
>
> If your're interested I can elaborate more on the problem, so you can
> get a better understanding what would actually be needed.
>
> Best regards,
> Lars
>
>
> Ceki Gulcu schrieb:
>> Hello all,
>>
>> I am in the process of fixing bugs related to context selectors in logback.
>> However, while sometime ago I thought that context selectors were the wave of
>> the future, I am increasingly skeptical about their usefulness (of context
>> selectors).
>>
>> If you are using context selectors, could you please explain why?
>>
--
Ceki Gülcü
Logback: The reliable, generic, fast and flexible logging framework for Java.
http://logback.qos.ch
More information about the Logback-user
mailing list