
Why do you want to use a TurboFilter instead of a regular filter? Ralph On Jul 13, 2010, at 6:15 AM, Espen Rydningen wrote:
Sorry for the double post, gmail pulled a trick on me :) Just ignore the other post.
Hi
I want to revisit this subject and theme. I saw that this thread ended 20th May 2008, but I did not find any conclusions on your discussion. The reason I find this subject interesting, is that I have use case which I can't seem to solve in any other way then setting a turbofilter on an appender.
This is situation: One enterprise web application, which today uses a proprietary, home built, logging framework, logs statement to both file and to a database via an EJB. I have started the work to replace this logging framework with LogBack/SL4J.
Our new design would include file appender, and a jms appender which posts to a jms queue.
Example of log statements in the current solution: <codeSnippet> //The logger is the file logger logger.debug("Bar property was not defined in abc.properties");
//FooLog is responsible for sending log message to the EJB LogContext lctx = new LogContext("webapplication", getClass().getName(), "theFooBarMethod()", LayerType.PRESENTATION); FooLog.log(logcontext, 6001, new String[] { "Bar property was not defined in abc.properties" }, null); </codeSnippet>
This type of logging I want to change to this kind of logging: <codeSnippet> logger.debug("Bar property was not defined in abc.properties"); </codeSnippet>
This is my use case: We need to separate which log statements that goes to file and which goes to JMS (and eventually to database)
This is how I want to solve it:
This would only go to file <codeSnippet> logger.debug("Bar property was not defined in abc.properties"); </codeSnippet>
But this would go to both file and jms <codeSnippet> Marker JMS_MARKER = MarkerFactory.getMarker("JMS"); logger.debug(JMS_MARKER, "Bar property was not defined in abc.properties"); </codeSnippet>
This could be obtained by doing something like this:
<appender name="Queue" class="com.a.b.c.log.CustomJMSQueueAppender"> <InitialContextFactoryName>org.apache.activemq.jndi.ActiveMQInitialContextFactory</InitialContextFactoryName> <ProviderURL>tcp://localhost:61616</ProviderURL> <QueueConnectionFactoryBindingName>ConnectionFactory</QueueConnectionFactoryBindingName> <QueueBindingName>MyQueue</QueueBindingName>
<turboFilter class="ch.qos.logback.classic.turbo.MarkerFilter"> <Marker>JMS</Marker> <OnMismatch>DENY</OnMismatch> </turboFilter>
</appender>
To end this; Is my use case covered in LogBack framework somehow, without waiting for this kind of features? _______________________________________________ Logback-user mailing list Logback-user@qos.ch http://qos.ch/mailman/listinfo/logback-user