[logback-user] What support is needed to run with logback.groovy configuration?
Robert Elliot
rob at lidalia.org.uk
Fri Aug 24 21:50:41 CEST 2012
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
>
>
>
> On 07/31/2012 07:24 AM, Steve Cohen wrote:
>> Maybe this got lost over the weekend? What does this exception thrown
>> when trying to use a logback.groovy configuration indicate? Groovy.1.7.2
>> is on the classpath as indicated by ceki.
>>
>>
>> On 07/29/2012 10:25 AM, Steve Cohen wrote:
>>>
>>> Sorry. My previous positive reply about your suggestion was erroneous. I
>>> had neglected to tell my app to use the groovy configuration file. When
>>> I did that, I got the same error as I did using the earlier version of
>>> groovy:
>>>
>>> 10:18:14,490 |-INFO in
>>> ch.qos.logback.classic.gaffer.ConfigurationDelegate at 1f0aecc - Adding
>>> aforementioned turbo filter to context
>>> Failed to instantiate [ch.qos.logback.classic.LoggerContext]
>>> Reported exception:
>>> groovy.lang.MissingPropertyException: No such property: files for class:
>>> Script1
>>> at
>>> org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:49)
>>>
>>>
>>> at
>>> org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:49)
>>>
>>>
>>> at
>>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:241)
>>>
>>>
>>> at Script1.run(Script1.groovy:39)
>>> at Script1$run.call(Unknown Source)
>>> at
>>> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
>>>
>>>
>>> at
>>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
>>>
>>>
>>> at
>>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:121)
>>>
>>>
>>> at
>>> ch.qos.logback.classic.gaffer.GafferConfigurator.run(GafferConfigurator.groovy:59)
>>>
>>>
>>> at
>>> ch.qos.logback.classic.gaffer.GafferConfigurator$run.callCurrent(Unknown
>>> Source)
>>> at
>>> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44)
>>>
>>>
>>> at
>>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:143)
>>>
>>>
>>> at
>>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:151)
>>>
>>>
>>> at
>>> ch.qos.logback.classic.gaffer.GafferConfigurator.run(GafferConfigurator.groovy:37)
>>>
>>>
>>> at
>>> ch.qos.logback.classic.gaffer.GafferUtil.runGafferConfiguratorOn(GafferUtil.java:43)
>>>
>>>
>>> at
>>> ch.qos.logback.classic.util.ContextInitializer.configureByResource(ContextInitializer.java:65)
>>>
>>>
>>> at
>>> ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:148)
>>>
>>>
>>> at org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:84)
>>> at org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:54)
>>> at org.slf4j.LoggerFactory.bind(LoggerFactory.java:128)
>>> at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:108)
>>> at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:279)
>>> at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:252)
>>> at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:265)
>>> ...
>>>
>>> On 07/28/2012 12:20 PM, Steve Cohen wrote:
>>>> No, I hadn't, thanks! That works.
>>>> I made groovy a runtime dependency and it works.
>>>>
>>>> My repo mirror only showed me groovy up to 1.6.3, but when I changed it
>>>> to 1.7.2, it found it and it works.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On 07/27/2012 05:09 PM, ceki wrote:
>>>>>
>>>>> Hi Steve,
>>>>>
>>>>> Have you tried adding the following?
>>>>>
>>>>> <dependency>
>>>>> <groupId>org.codehaus.groovy</groupId>
>>>>> <artifactId>groovy-all</artifactId>
>>>>> <version>1.7.2</version>
>>>>> </dependency>
>>>>>
>>>>> It's the groovy dependency that logback-classic uses.
>>>>>
>>>>> HTH,
>>>>>
>>>>> On 27.07.2012 17:54, Steve Cohen wrote:
>>>>>> I switched my application from using logback.xml to using
>>>>>> logback.groovy. I just wanted to try it but off the bat, I much prefer
>>>>>> scanning through an easily alphabetized list of loggers in the groovy
>>>>>> file to the mess that you get with XML and lots of loggers.
>>>>>>
>>>>>> However, my hopes for a quick success were dashed when I saw:
>>>>>>
>>>>>> Groovy classes are not available on the class path. ABORTING
>>>>>> INITIALIZION.
>>>>>>
>>>>>> What must I do to my application classpath to allow logback
>>>>>> configuration via groovy? The manual does not seem to have any
>>>>>> information on this.
>>>>>>
>>>>>> Also, I noticed via goggling the issue that JSON causes an issue with
>>>>>> groovy. This will also impact me as our application makes use of JSON.
>>>>>>
>>>>>> Thanks to anyone who can provide this information.
>>>>>>
>>>>>> Steve Cohen
>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> 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
>>>
>>>
>>
>> _______________________________________________
>> 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