[logback-user] commons-compiler required?
Ceki Gulcu
ceki at qos.ch
Tue Jan 11 18:36:17 CET 2011
Hi Eric,
I think commons-compiler is needed for Janino 2.6 and later. Logback was
tested with Janino 2.4.x and 2.5.x.
If you have a need for java-expressions, try GEventEvaluator even if you
are not familiar with the Groovy language. Contrary to
JaninoEventEvaluator which understands simple expressions,
GEventEvaluator can parse blocks of code. As an example, with using
Janino you would write:
!logger.startsWith("org.apache.http")
||
( logger.equals("org.apache.http.wire") &&
(mdc != null && mdc.get("entity") != null
&&
((String) mdc.get("entity")).contains("someSpecialValue"))
&&
!message.contains("someSecret")
)
In Groovy, this would become:
if(logger.startsWith("org.apache.http"))
return true;
if(mdc?.get("entity") == null)
return false;
String payee = (String) mdc.get("entity");
if(logger.equals("org.apache.http.wire") &&
payee.contains("someSpecialValue") &&
!message.contains("someSecret")) {
return true;
}
return false;
Note the Groovy expression is almost valid Java. My point is that for
most non-trivial expressions the Groovy version will be easier to write
and to read.
Note that while Groovy has advantages over Java as language, the biggest
difference between JaninoEventEvaluator and GEventEvaluator is due to
the former's limitation to boolean expressions. This limitations is
likely to be removed in a future version of logback.
HTH,
--
Ceki
On 11.01.2011 17:12, Eric Hough wrote:
> Hi,
>
> I'm using Janino with logback to utilize evaluators after installing
> Janino as described at http://logback.qos.ch/setup.html. It's working
> great.
>
> However I noticed that over on Janino's site
> (http://docs.codehaus.org/display/JANINO/Download#Download-installation)
> they require commons-compiler.jar. My question is, does Logback also
> require commons-compiler.jar? I just want to make sure I don't run
> into a ClassNotFoundException down the road.
>
> Thanks!
More information about the Logback-user
mailing list