- 论坛徽章:
- 0
|
日志的基础Grails使用通常的配置机制来配置底层的log4j日志系统。为了配置日志系统,必须要修改grails-app/config目录下的Config.groovy文件。这个文件允许为development、test和production环境指定不同的日志配置。Grails负责处理这个文件来在web-app/WEB-INF/classes目录下产生适当的log4j.properties文件。
一个典型的Grails的log4j的配置例子如下:
log4j {
appender.stdout = "org.apache.log4j.ConsoleAppender"
appender.'stdout.layout'="org.apache.log4j.PatternLayout"
rootLogger="error,stdout"
logger {
grails="info,stdout"
org {
grails.spring="info,stdout"
codehaus.groovy.grails.web="info,stdout"
codehaus.groovy.grails.commons="info,stdout"
…
}
}
}如果习惯于使用标准的属性文件的格式进行配置,可以使用Groovy的多行字符串进行设置,如下:
log4j = '''
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# ...remaining configuration
'''一些有用的日志(logger):
org.codehaus.groovy.grails.commons - 记录核心信息,如文件加载等。org.codehaus.groovy.grails.web - 记录Grail web请求的处理org.codehaus.groovy.grails.web.mapping - 记录URL 映射的 debuggingorg.codehaus.groovy.grails.plugins - 记录插件的活动org.springframework - 记录Spring的信息org.hibernate - 记录Hibernate的信息全部的堆栈信息当异常产生时,Java和Groovy会产生许多无用的内部的异常信息。Grails会过滤这些信息。
当异常产生时,全部的信息总是全部写入到名为StackTrace的日志器中。这些信息保存在名为stacktrace.log的文件中。但是你可以通过Config.groovy来改变这种行为。例如:你想把这些信息显示到标准输出,可把下列内容
StackTrace="error,stacktraceLog"修改成:
StackTrace="error,stdout"你还可以通过以下命令来完全的禁止这项功能:
grails -Dgrails.full.stacktrace=true run-app记录日志的传统方式每个应用程序的组成部分都有一个动态的log属性。这包括了domain classes、controllers和标签库等等。以下是使用log属性的例子:
def foo = "bar"
log.debug "The value of foo is $foo"日志以grails.app..ClassName的方式进行命名。下面是给不同的组成部分配置不同的log的例子:
# Set level for all application artefacts
log4j.logger.grails.app="info, stdout"# Set for a specific controller
log4j.logger.grails.app.controller.YourController="debug, stdout"
# Set for a specific domain class
log4j.logger.grails.app.domain.Book="debug, stdout"
# Set for a specific taglib
log4j.logger.grails.app.tagLib.FancyAjax="debug, stdout"
# Set for all taglibs
log4j.logger.grails.app.tagLib="info, stdout"
一些通常的应用程序组成部分对应的名字:
bootstrap - For bootstrap classesdataSource - For data sourcestagLib - For tag librariesservice - For service classescontroller - For controllersdomain - For domain entities
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/46000/showart_2127101.html |
|