描述:记录每日日志,按天分割,每个日志不超过10MB,若超出限制大小,另起一个文件保存。
配置grails-app/conf/logback.groovy文件
import ch.qos.logback.classic.Level import ch.qos.logback.classic.filter.LevelFilter import ch.qos.logback.core.spi.FilterReply // See http://logback.qos.ch/manual/groovy.html for details on configuration appender('STDOUT', ConsoleAppender) { encoder(PatternLayoutEncoder) { pattern = "%-4(%d{HH:mm:ss.SSS} [%thread]) %-5level %logger{32} \\(%file:%line\\) - %msg%n" } } logger("console",ERROR,['STDOUT'],false) root(ERROR, ['STDOUT']) //日志级别从高到地低 OFF 、 FATAL 、 ERROR 、 WARN 、 INFO 、 DEBUG 、 TRACE 、 ALL //定义当前目录 def HOME_DIR = "." //ERROR级别的日志 appender("ERROR", RollingFileAppender) { //过滤器,只记录ERROR级别的日志 filter(LevelFilter) { level = Level.ERROR onMatch = FilterReply.ACCEPT onMismatch = FilterReply.DENY } //PatternLayoutEncoder对输出日志信息进行格式化 encoder(PatternLayoutEncoder) { //默认为pattern = "%level %logger - %msg%n" //%d表示日期,%thread表示线程名,%level日志级别,%file具体的文件,%line记录日志位置,%msg日志消息,%n换行符 // pattern = "%-4(%d{HH:mm:ss.SSS} [%thread]) %-5level %logger{32} \\(%file:%line\\) - %msg%n" pattern = "%-4(%d{HH:mm:ss.SSS} [%thread]) %-5level %logger{32} \\(%F:%L\\) - %msg%n" } //指定日志生成格式 rollingPolicy(TimeBasedRollingPolicy) { fileNamePattern = "${HOME_DIR}/logs/%d{yyyy-MM-dd}_ERROR_%i.log" maxHistory = 30 //日志最长保留30天 timeBasedFileNamingAndTriggeringPolicy(SizeAndTimeBasedFNATP) { maxFileSize = "10MB" } } //约束生成单个日志文件大小为10M,超过后新建一个文件保存 // triggeringPolicy(SizeBasedTriggeringPolicy) { // maxFileSize = "10MB" // } append = true } logger("console",ERROR,['ERROR'],false) //INFO级别的日志 appender("INFO", RollingFileAppender) { //过滤器,只记录INFO级别的日志 filter(LevelFilter) { level = ch.qos.logback.classic.Level.INFO onMatch = FilterReply.ACCEPT onMismatch = FilterReply.DENY } //PatternLayoutEncoder对输出日志信息进行格式化 encoder(PatternLayoutEncoder) { //默认为pattern = "%level %logger - %msg%n" //%d表示日期,%thread表示线程名,%level日志级别,%file具体的文件,%line记录日志位置,%msg日志消息,%n换行符 pattern = "%-4(%d{HH:mm:ss.SSS} [%thread]) %-5level %logger{32} \\(%file:%line\\) - %msg%n" } //指定日志生成格式,文件名以日期命名,生成每日日志文件,如果超出大小则另起文件存放 //%d{yyyy-MM-dd}-日期,%i-用于记录每日日志个数 rollingPolicy(TimeBasedRollingPolicy) { fileNamePattern = "${HOME_DIR}/logs/%d{yyyy-MM-dd}_INFO_%i.log" maxHistory = 30 //日志最长保留30天 timeBasedFileNamingAndTriggeringPolicy(SizeAndTimeBasedFNATP) { maxFileSize = "10MB" //单个日志文件最大为10MB } } // //约束生成单个日志文件大小为10M,超过后新建一个文件保存 // triggeringPolicy(SizeBasedTriggeringPolicy) { // maxFileSize = "10MB" // } append = true } //为false表示只打印到本log的appender中,不打印父类 logger("console",INFO,['INFO'],false) //将指定级别的日志输出到日志文件中 root(ERROR, ['ERROR']) //root(INFO, ['INFO'])
在使用的类上面添加@groovy.util.logging.Slf4j注解,用于记录日志位置
@groovy.util.logging.Slf4j def index(Integer max) { def info = [result:false,msg:"操作失败"] log .error("参数信息: error={}" , info) render "记录日志" }
//指定要在控制台打印的位置 logger('grails.app.controllers', INFO, ['STDOUT'], false) logger('grails.app.services', INFO, ['STDOUT'], false) logger('grails.app.jobs', INFO, ['STDOUT'], false) logger('com.listener', INFO, ['STDOUT'], false)
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!