在我的 Grails 4 应用程序中,log.info("log message")
不显示日志,但log.error("log message")
会显示。
如何在 Grails 4 中error
更改日志级别?info
在我的 Grails 4 应用程序中,log.info("log message")
不显示日志,但log.error("log message")
会显示。
如何在 Grails 4 中error
更改日志级别?info
选项1
我需要做的就是更新application.yml
文件并将以下内容添加到底部
logging:
level:
root: INFO
您还可以为单个包设置单个日志级别:
logging:
level:
packageName: INFO
选项 2
由于 Grails 4 基于 Spring Boot,我最终只是设置了适当的环境变量,即,logging.level.root=INFO
或者logging.level.com.mycompany.mypackage=INFO
我在 intellij 中通过编辑我的运行配置(见下文)。这样,我可以在部署时设置不同的日志记录级别。
你想编辑 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
您可以参考此更多详细信息和所有日志级别。
希望这会帮助你。