4

在我的 Grails 4 应用程序中,log.info("log message")不显示日志,但log.error("log message")会显示。

如何在 Grails 4 中error更改日志级别?info

4

3 回答 3

4

选项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 中通过编辑我的运行配置(见下文)。这样,我可以在部署时设置不同的日志记录级别。

在此处输入图像描述 在此处输入图像描述

于 2020-01-03T21:58:35.033 回答
1

你想编辑 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

我希望这会有所帮助。

于 2020-01-03T22:33:07.883 回答
1

简单方法:

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

您可以参考更多详细信息和所有日志级别。

希望这会帮助你。

于 2020-01-05T10:36:15.333 回答