Hi,
I am trying to use logback.groovy instead of logback.xml in my
groovy project but I might be missing something:
$ cat HelloWorld.groovy
@Grab('org.slf4j:slf4j-api:1.6.1')
@Grab('ch.qos.logback:logback-core:1.0.0')
@Grab('ch.qos.logback:logback-classic:1.0.0')
@Grab('ch.qos.logback:logback-examples:1.0.0')
import org.slf4j.Logger
import org.slf4j.LoggerFactory
public class HelloWorld1 {
public static void main(String[] args) {
Logger logger = LoggerFactory.getLogger( "HelloWorld1" )
logger.warn("Hello world.")
}
}
If I put the first example from
http://logback.qos.ch/manual/configuration.html
of sample0.xml as logback.xml, it seems to work perfect.
If I put the logback.groovy equivalent instead, I get various
errors, like :
$ groovy HelloWorld.groovy
Failed to instantiate [ch.qos.logback.classic.LoggerContext]
Reported exception:
org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot
cast object 'ch.qos.logback.core.ConsoleAppender[null]' with class
'ch.qos.logback.core.ConsoleAppender' to class
'ch.qos.logback.core.Appender'
at
org.codehaus.groovy.runtime.typehandling.DefaultTypeTransformation.castToType(DefaultTypeTransformation.java:331)
If I only go with the simplest:
root(DEBUG)
then I get
groovy.lang.MissingMethodException: No signature of method:
Script1.root() is applicable for argument types:
(ch.qos.logback.classic.Level) values: [DEBUG]
Possible solutions: wait(), run(), run(), wait(long),
print(java.lang.Object), print(java.lang.Object)
Below is logback.groovy, could you enlighten me what I am doing
wrong?
Thanks,
Tamas
============================
@Grab('ch.qos.logback:logback-core:1.0.0')
@Grab('ch.qos.logback:logback-classic:1.0.0')
@Grab('ch.qos.logback:logback-examples:1.0.0')
import ch.qos.logback.classic.encoder.PatternLayoutEncoder
import ch.qos.logback.core.ConsoleAppender
import static ch.qos.logback.classic.Level.DEBUG
//appender("STDOUT", ConsoleAppender) {
// encoder(PatternLayoutEncoder) {
// pattern = "%d{HH:mm:ss.SSS} XXX [%thread] %-5level %logger{36}
- %msg%n"
// }
//}
root(DEBUG)