Todsaporn Sangboon
1 min readDec 7, 2017

Using logback in Grails 3

Grails 3 เปลี่ยนการ Config log4j มาใช้งาน logback ซึ่งทำให้ การ config ต่างไปจากเดิมพอสมควร

//before version 3.x
log4j = {

info ‘grails.app.controllers’
debug ‘grails.app.controllers.foobarsystem.hello’
info ‘grails.app.services’

}

การ config ตัวอย่างสามารถดูได้จาก logback.groovy ที่ grails project generate ออกมา ในส่วนการ config ใน version 3.0.x-3.2.x จะแตกต่างจาก 3.3 เป็นต้น

หากต้องการให้ log ใน artifact ของ grails ตัวอย่งเช่น controller services ให้เพิ่ม config ใน logback ดังนนี้

//version 3.0–3.2
//default grails logging
logger ‘grails.app.taglibs’, DEBUG, [‘STDOUT’], false
logger ‘grails.app.taglib’, DEBUG, [‘STDOUT’], false
logger ‘grails.app.interceptors’, DEBUG, [‘STDOUT’], false
logger ‘grails.app.controllers’, DEBUG, [‘STDOUT’], false
logger ‘grails.app.services’, DEBUG, [‘STDOUT’], false

โดยต้องมีการกำหนด parameter 4 ตัวด้วยกันคือ package, log mode, appender และ additive

การใช้งาน @Slf4j สำหรับ src สามารถอ้างอิง package ได้เลยเช่น

package foo.bar.hello
@Slf4j
class Hello{
def helloWord(){
log.debug("hello world")
}
}

ในกรณีนี้ให้ config ใน logback ดังนี้ครับ

logger 'foo.bar.hello', DEBUG, [‘STDOUT’], false //กรณีทั้ง package
logger 'foo.bar.hello.Hello', DEBUG, [‘STDOUT’], false //เฉพาะ Class

หากต้องการ config appender แบบ rolling สามารถดูได้ที่นี้ครับ
CONFIGURING ROLLING LOGGING WITH LOGBACK

Todsaporn Sangboon
Todsaporn Sangboon

Written by Todsaporn Sangboon

I'm developer and interest new programming technics - Ruby on Rails - Groovy on Grails - Codigniter

No responses yet