免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4980 | 回复: 0
打印 上一主题 下一主题

log4j在grails中的配置 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-21 15:30 |只看该作者 |倒序浏览

                日志的基础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 映射的 debugging
  • org.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 classes
  • dataSource - For data sources
  • tagLib - For tag libraries
  • service - For service classes
  • controller - For controllers
  • domain - For domain entities
                   
                   
                   
                   
                   

    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/46000/showart_2127101.html
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP