日志

Groovy的日志是基于JDK的日志设施的,如果你对此主题还比较陌生的话,请查看一下JDK日志系统的文档。

为了能够跟踪到Groovy是如何调用MetaMethods,我们需要做一下如下设置:

在%JAVA_HOME%/jre/lib/logging.properties文件或者同等效果的文件:

  • 请确定将你的日志处理的显示级别配置成至少'FINER',例如
    java.util.logging.ConsoleHandler.level = ALL
  • 设置MetaClass的日志级别至少是'FINER',例如
    groovy.lang.MetaClass.level = FINER
  • 设置类和你要跟踪的方法名的级别为适当的级别,日志名称建议以'methodCalls'开头,以方法名称结束。例如
    # trace all method calls
    methodCalls.level = FINER
    # trace method calls to the 'String' class
    methodCalls.java.lang.String.level = FINER
    # trace method calls to Object.println()
    methodCalls.java.lang.Object.println.level = FINER

示例:
通过Groovy命令行脚本跟踪所有方法调用代码如下:(德国 locale)

$ groovy -e "println 'hi'"
13.09.2005 14:33:05 script_from_command_line run()
FEINER: called from MetaClass.invokeMethod
13.09.2005 14:33:05 script_from_command_line println('hi')
FEINER: called from MetaClass.invokeMethod
hi

LOG4J-GROOVY

log4j和Groovy结合有一个问题:脚本名称和行数是错误的。Groovy使用的字节码让log4j不能识别,这在调试和根据类过滤信息的时候,是一个很大的问题。

现在已经有了一个LOG4J的补丁可以解决此问题了,通过补丁,LOG4J可以争取的显示文件名称和行数,更多信息请看: http://www.kotek.net/projects/log4j-groovy

 
wiki/user_guide/logging.txt · 最后更改: 2008-04-19 13:50 (外部编辑)
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki