I create the following groovy script in order to show how to inject a log field into our classes with a simple annotation
// File: LogSlf4j.groovy
// Add dependencies for Slf4j API and Logback
@Grapes([
@Grab(group='org.slf4j', module='slf4j-api', version='1.6.1'),
@Grab(group='ch.qos.logback', module='logback-classic', version='0.9.28')
])
import org.slf4j.*
import groovy.util.logging.Slf4j
// Use annotation to inject log field into the class.
@Slf4j
class faimily{
def father() {
log.debug 'car engine is hot'
log.error 'my car is stuck'
}
def mother() {
log.debug 'dont have a water in the kitchen'
log.error 'Cant make a cake'
}
}
def helloWorld = new faimily()
helloWorld.father()
helloWorld.mother()
when I run the groovy script I get the following results ( on GROOVY CONSOLE )
17:58:50.938 [Thread-59] DEBUG faimily - car engine is hot
17:58:50.938 [Thread-59] ERROR faimily - my car is stuck
17:58:50.938 [Thread-59] DEBUG faimily - dont have a water in the kitchen
17:58:50.938 [Thread-59] ERROR faimily - Cant make a cake
please advice how we can print the results to a log file in the WIN machine , and what need to add to my groovy script in order to enable that?
for example:
the log file
C:\Program Files\LOGS\my.groovy.log
( should contain the results: )
17:58:50.938 [Thread-59] DEBUG faimily - car engine is hot
17:58:50.938 [Thread-59] ERROR faimily - my car is stuck
17:58:50.938 [Thread-59] DEBUG faimily - dont have a water in the kitchen
17:58:50.938 [Thread-59] ERROR faimily - Cant make a cake
This works for me:
@Grab('org.slf4j:slf4j-api:1.6.1')
@Grab('ch.qos.logback:logback-classic:0.9.28')
import org.slf4j.*
import groovy.util.logging.Slf4j
import ch.qos.logback.core.*
import ch.qos.logback.classic.encoder.*
// Use annotation to inject log field into the class.
@Slf4j
class Family {
static {
new FileAppender().with {
name = 'file appender'
file = 'C:\\tmp\\groovy.log'
context = LoggerFactory.getILoggerFactory()
encoder = new PatternLayoutEncoder().with {
context = LoggerFactory.getILoggerFactory()
pattern = "%date{HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg%n"
start()
it
}
start()
log.addAppender(it)
}
}
def father() {
log.debug 'car engine is hot'
log.error 'my car is stuck'
}
def mother() {
log.debug 'dont have a water in the kitchen'
log.error 'Cant make a cake'
}
}
def helloWorld = new Family()
helloWorld.father()
helloWorld.mother()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With