如何在 Grails 4 中设置日志级别
How to set the log level in Grails 4
在我的 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。
希望对您有所帮助。
简单方法:
Update/Replace 您的 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 更多详细信息和所有日志级别。
希望对您有所帮助。
在我的 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。
希望对您有所帮助。
简单方法:
Update/Replace 您的 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 更多详细信息和所有日志级别。
希望对您有所帮助。