
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@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@qos.ch http://mailman.qos.ch/mailman/listinfo/logback-user
_______________________________________________ Logback-user mailing list Logback-user@qos.ch http://mailman.qos.ch/mailman/listinfo/logback-user