[logback-user] commons-compiler required?

Eric Hough k2eric at gmail.com
Tue Jan 11 22:08:38 CET 2011


Thank you for your detailed response!

I considered using GEventEvaluator but in my experience Groovy has
added more of a memory/performance overhead than I'm willing to take
on. The syntax is undoubtedly more concise, but I'm not using
expressions that are more than 1 or 2 lines, so for me Janino will
work just fine. Thanks again.

Eric

On Tue, Jan 11, 2011 at 9:36 AM, Ceki Gulcu <ceki at qos.ch> wrote:
> 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")  &amp;&amp;
>       (mdc != null &amp;&amp; mdc.get("entity") != null
>         &amp;&amp;
>       ((String) mdc.get("entity")).contains("someSpecialValue"))
>       &amp;&amp;
>     !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") &amp;&amp;
>     payee.contains("someSpecialValue") &amp;&amp;
>     !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!
>
> _______________________________________________
> Logback-user mailing list
> Logback-user at qos.ch
> http://qos.ch/mailman/listinfo/logback-user
>


More information about the Logback-user mailing list