Grails 日志不会在文件中生成

Grails 日志不会在文件中生成,grails,logging,groovy,logback,Grails,Logging,Groovy,Logback,我在my grails应用程序中使用logback,logback.groovy的代码如下:- def targetDir = BuildSettings.TARGET_DIR if (Environment.isDevelopmentMode() && targetDir != null) { appender("FULL_STACKTRACE", FileAppender) { file = "${targetDir}/stacktrace.log"

我在my grails应用程序中使用logback,logback.groovy的代码如下:-

def targetDir = BuildSettings.TARGET_DIR
if (Environment.isDevelopmentMode() && targetDir != null) 
{
    appender("FULL_STACKTRACE", FileAppender) {
       file = "${targetDir}/stacktrace.log"
       append = true
       encoder(PatternLayoutEncoder) {
          pattern = "%level %logger - %msg%n"
       }
    }
    logger("StackTrace", DEBUG, ['FULL_STACKTRACE'], false)
}
root(ERROR, ['STDOUT'])
我已重新启动应用程序,但stacktrace.log文件中未生成日志

你也可以让我知道为什么我们需要2个记录器(根和记录器)。我们不能使用没有root的logback.groovy吗


谢谢,

Logback允许您为不同的日志文件和包组合不同的记录器

例如:

appender('STDOUT', ConsoleAppender) {
    ...
}
appender('FILE', RollingFileAppender) {
    file = "${basePath}/logs/myLog.log"
    ...
}

root WARN, ['STDOUT', 'FILE']
logger 'org.hibernate.SQL', TRACE, ['STDOUT']
在本例中,您的根记录器将把日志(级别等于或高于WARN)写入控制台和日志文件。 但您也将从org.hibernate.SQL包接收跟踪或更高级别的日志到控制台


Logback非常灵活。您可以在这里找到手册

print
targetDir
out并查看它的外观。您是否在
开发模式下运行?是的,它处于开发模式。空stacktrace.log文件已存在,但其中未生成日志消息。