如何将Grails Log4J设置为仅记录来自应用程序的信息级别

问题描述

我在grails 2.4.2应用程序中将log4j设置为基本级别。每当有错误级别日志时,它将打印到控制台/写入文件。现在,我想返回并将其设置为同时从我的应用程序记录信息级别日志。我的配置如下所示:

log4j = {
    // Example of changing the log pattern for the default console appender:
    //
    //appenders {
    //    console name:'stdout',layout:pattern(conversionPattern: '%c{2} %m%n')
    //}

    appenders {
        environments {
            production {
                rollingFile name: "stacktrace",maxFileSize: "10MB",maxBackupIndex:2,file:"/tmp/logs/stacktrace.log"
            }
        }
    }

    info 'grails.app'

    error  'org.codehaus.groovy.grails.web.servlet',// controllers
            'org.codehaus.groovy.grails.web.pages',// GSP
            'org.codehaus.groovy.grails.web.sitemesh',// layouts
            'org.codehaus.groovy.grails.web.mapping.filter',// URL mapping
            'org.codehaus.groovy.grails.web.mapping',// URL mapping
            'org.codehaus.groovy.grails.commons',// core / classloading
            'org.codehaus.groovy.grails.plugins',// plugins
            'org.codehaus.groovy.grails.orm.hibernate',// hibernate integration
            'org.springframework','org.hibernate','net.sf.ehcache.hibernate'

}

问题是,当我也将root用户设置为日志信息级别日志时,我会从所有grails依赖项中写入信息日志。这使得不可能跟踪和跟踪信息日志中的任何内容。是否可以只打印出grails应用程序的信息日志,并仅保留依赖项中的打印错误日志?

解决方法

是否可以仅打印grails应用程序的信息日志,并且 仅保留依赖项中的打印错误日志?

是的。您可以根据需要单独配置每个记录器。

我希望您遇到的问题与info 'grails.app'有关,后者配置了过多的记录器。如果扩展该前缀,则可以缩小受影响的记录器的范围。例如,如果要配置控制器,则可以执行类似info 'grails.app.controllers'的操作。如果您愿意,可以做更具体的事情,例如做info 'grails.app.controllers.com.yourcompany'等。您可以对要配置的任何工件类型进行相同的操作。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...