【发布时间】:2020-04-22 10:43:37
【问题描述】:
在我的 Grails 4 应用程序中,log.info("log message") 不显示日志,但 log.error("log message") 会。
如何在 Grails 4 中将日志级别从 error 更改为 info?
【问题讨论】:
标签: spring-boot grails logback grails-4
在我的 Grails 4 应用程序中,log.info("log message") 不显示日志,但 log.error("log message") 会。
如何在 Grails 4 中将日志级别从 error 更改为 info?
【问题讨论】:
标签: spring-boot grails logback grails-4
【讨论】:
您想编辑 grails-app/conf/logback.groovy。下面是 Grails 4.0.1 的默认文件。
import grails.util.BuildSettings
import grails.util.Environment
import org.springframework.boot.logging.logback.ColorConverter
import org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter
import java.nio.charset.StandardCharsets
conversionRule 'clr', ColorConverter
conversionRule 'wex', WhitespaceThrowableProxyConverter
// See http://logback.qos.ch/manual/groovy.html for details on configuration
appender('STDOUT', ConsoleAppender) {
encoder(PatternLayoutEncoder) {
charset = StandardCharsets.UTF_8
pattern =
'%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} ' + // Date
'%clr(%5p) ' + // Log level
'%clr(---){faint} %clr([%15.15t]){faint} ' + // Thread
'%clr(%-40.40logger{39}){cyan} %clr(:){faint} ' + // Logger
'%m%n%wex' // Message
}
}
def targetDir = BuildSettings.TARGET_DIR
if (Environment.isDevelopmentMode() && targetDir != null) {
appender("FULL_STACKTRACE", FileAppender) {
file = "${targetDir}/stacktrace.log"
append = true
encoder(PatternLayoutEncoder) {
charset = StandardCharsets.UTF_8
pattern = "%level %logger - %msg%n"
}
}
logger("StackTrace", ERROR, ['FULL_STACKTRACE'], false)
}
root(ERROR, ['STDOUT'])
具体的改变取决于你真正想要做什么。例如,如果您有一个名为 demo.SomeController 的控制器,并且您想将其日志级别设置为 INFO,您可以添加如下内容:
logger 'demo.SomeController', INFO, ['STDOUT'], false
请参阅http://logback.qos.ch/manual/groovy.html 以获取完整的配置参考。
希望对你有帮助。
【讨论】:
简单的方法:
使用以下代码更新/替换您的grails-app/conf/logback.groovy:
import ch.qos.logback.classic.encoder.PatternLayoutEncoder
appender("FILE", RollingFileAppender) {
file = "logs/FILE-NAME.log"
rollingPolicy(TimeBasedRollingPolicy) {
fileNamePattern = "logs/FILE-NAME-%d{yyyy-MM-dd}.log"
maxHistory = 30
}
encoder(PatternLayoutEncoder) {
pattern = "%d{HH:mm:ss.SSS} %-4relative [%thread] %-5level %logger{35} - %msg%n"
}
}
root(INFO, ["FILE"])
以上解决方案将记录器级别显示为INFO
您可以参考this 更多详细信息和所有日志级别。
希望对你有帮助。
【讨论】: