[logback-user] What support is needed to run with logback.groovy configuration?

Steve Cohen scohen at javactivity.org
Sat Aug 25 18:28:56 CEST 2012


In summary, the issue here is that logback configuration with XML 
automatically looks at System.properties in trying to resolve an 
expression of the form ${property_name}, whereas Groovy requires an 
explicit initial def statement from "System.properties" to create an 
initial definition in the groovy namespace.

Once "property" is defined in the Groovy namespace, "${property}" can be 
resolved.  But groovy will not automatically resolve "${property}" when 
"property" is the key of a system property.

On 08/24/2012 06:30 PM, Steve Cohen wrote:
> Yes, that is right.
>
> I changed it to
>
> def logdir = System.properties.getProperty('files.root')+"/logdir"
>
> and it works.
>
> there's probably a "groovier" way of handling that but I don't know what
> that is.
>
> Perhaps the translator might be improved to handle such occurrences.
>
> On 08/24/2012 06:16 PM, ceki wrote:
>>
>> If I understand correctly, removing the line "def logdir==..." allows
>> the logback.groovy script to be successfully parsed ?
>>
>> On 25.08.2012 01:08, Steve Cohen wrote:
>>> Thanks, Robert, now we are getting somewhere.
>>>
>>> Indeed, my logback.groovy contains the line
>>>      def logdir = ${files.root}/logdir
>>>
>>> This came from a translation of my logback.xml by ceki's handy converter
>>> webpage.  Logback.xml had
>>>      <property name="logdir" value = "${files.root}/logdir" />
>>>
>>> where files.root is the name of a System property.
>>>
>>> So the question is, is there a way to express a system property name in
>>> groovy and what is it?
>>>
>>> Steve
>>>
>>> Indeed
>>> On 08/24/2012 02:50 PM, Robert Elliot wrote:
>>>> I haven't used the groovy config, but it sounds to me like you
>>>> effectively have a compile error in your config - you are using the
>>>> word "files" as an identifier somewhere where the Logback groovy
>>>> config is not expecting it.
>>>>
>>>> Groovy DSLs tend to work by doing a lot of clever stuff around syntax,
>>>> building on the fact that at compile time Groovy doesn't know what
>>>> properties may be available on a class at runtime.  Consequently you
>>>> don't get compile time indicators as to whether you are getting the
>>>> syntax of the DSL right; instead it fails at runtime, complaining that
>>>> a property was not present.
>>>>
>>>> Rob
>>>>
>>>> On 24 Aug 2012, at 20:00, Steve Cohen <scohen at javactivity.org> wrote:
>>>>
>>>>> After upgrading to logback-1.0.7 and groovy 2.0.0, the problem below
>>>>> continues to be an issue and I am unable to make progress with it.
>>>>> The error messages are the same.
>>>>>
>>>>> Failed to instantiate [ch.qos.logback.classic.LoggerContext]
>>>>> Reported exception:
>>>>> groovy.lang.MissingPropertyException: No such property: files for
>>>>> class: Script1
>>>>>
>>>>> I am no groovy expert.  I want to use groovy only because it offers a
>>>>> terser notation than xml configuration that would enable me to more
>>>>> easily manage my configuration on the fly.
>>>>>
>>>>> But I can't get past this error or know what it even means.
>>>>>
>>>>>     No such property: files for class: Script1
>>>>>
>>>>> I have no clue how to solve this.  Can someone please help?  What is
>>>>> it trying to tell me?  I know of no "Script1"
>>>>>
>>>>> Steve
>>>>>
>>>>>
>>>
>>> _______________________________________________
>>> Logback-user mailing list
>>> Logback-user at qos.ch
>>> http://mailman.qos.ch/mailman/listinfo/logback-user
>>
>>
>
> _______________________________________________
> Logback-user mailing list
> Logback-user at qos.ch
> http://mailman.qos.ch/mailman/listinfo/logback-user
>
>



More information about the Logback-user mailing list