描述:記錄每日日誌,按天分割,每個日誌不超過10MB,若超出限制大小,另起一個文件保存。

配置grails-app/conf/logback.groovy文件

import ch.qos.logback.classic.Levelimport ch.qos.logback.classic.filter.LevelFilterimport ch.qos.logback.core.spi.FilterReply// See http://logback.qos.ch/manual/groovy.html for details on configurationappender(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.Slf4jdef index(Integer max) { def info = [result:false,msg:"操作失敗"] log .error("參數信息: error={}" , info) render "記錄日誌"}

推薦閱讀:

相關文章