grails日志系统的研究

简介:

 对于grails的日志输出,我真的是给弄吐血了。开始以为很简单,后来发现grails封装log4j做的有点太多了,很多东西的封装理解了觉得还挺合理,但是不理解的话真是无比迷茫。对于是否有必要做这么多强制性约束,我保留意见...(不知道是不是rails的约定,希望是因为自己无知)

 
先说一个笨人的办法,但是容易和后面的研究混淆,如果怕麻烦就这么弄好了
在log4j的配置里面加上
 
 
 
  1. root { 
  2.   info 'stdout' 
  3.   additivity = true 
基本不用管太多了,应用程序里面的error日志一样可以打,只有遇到测试类的error日志才会停。
 
但是在测试环境下,我们希望的是遇到error就可以停了。那么具体的log4j的配置文件如下(加上不同环境的日志级别更方便)
 
 
 
  1. log4j = {  
  2.   environments {  
  3.     production {  
  4.       appenders {  
  5.         rollingFile name:"file", maxFileSize:1024, file:"logs/myApp.log"  
  6.     }  
  7.     warn file:'grails.app'  
  8.   }  
  9.  
  10.   development {  
  11.     appenders {  
  12.       console name:'stdout', layout:pattern(conversionPattern: '%c{2} %m%n')  
  13.   }  
  14.     info stdout:'grails.app'  
  15.   }  
  16.   
  17.   test {  
  18.     appenders {  
  19.       console name:'stdout', layout:pattern(conversionPattern: '%c{2} %m%n')  
  20.      }  
  21.     debug stdout:'grails.app'  
  22.     }  
  23.   }  
  24.       
  25.     error  'org.codehaus.groovy.grails.web.servlet',  //  controllers  
  26.            'org.codehaus.groovy.grails.web.pages', //  GSP  
  27.            'org.codehaus.groovy.grails.web.sitemesh', //  layouts  
  28.            'org.codehaus.groovy.grails.web.mapping.filter', // URL mapping  
  29.            'org.codehaus.groovy.grails.web.mapping', // URL mapping  
  30.            'org.codehaus.groovy.grails.commons', // core / classloading  
  31.            'org.codehaus.groovy.grails.plugins', // plugins  
  32.            'org.codehaus.groovy.grails.orm.hibernate', // hibernate integration  
  33.            'org.springframework',  
  34.            'org.hibernate',  
  35.            'net.sf.ehcache.hibernate'  
  36.   
  37.     warn   'org.mortbay.log'  
  38. }  
这个配置应该就是比较合理的了,正常程序输出就会打日志。但是有几个地方注意一下:
1. 在测试环境下,如果遇到有error级别的日志,那么后面的日志也全都不打印了。方便查找问题,很贴心的设计~
2. 在测试类中,不允许debug级别日志,其实测试也不需要这个级别。应该是grails为了规范而做的限制
3. unit test下面是不能使用log,应该是没有注入
4. 在测试环境下,输出的error日志到test reports中去看


本文转自passover 51CTO博客,原文链接:http://blog.51cto.com/passover/425483,如需转载请自行联系原作者
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
4月前
|
Java API 开发者
Java日志框架整理
Java日志框架整理
62 0
|
26天前
|
XML Java 开发者
【SpringBoot实战专题】「开发实战系列」全方位攻克你的技术盲区之SpringBoot整合众多日志管理系统服务starter-logging
【SpringBoot实战专题】「开发实战系列」全方位攻克你的技术盲区之SpringBoot整合众多日志管理系统服务starter-logging
11 1
|
6月前
|
XML 监控 Java
Java日志框架
日志的概念 日志是记录应用程序运行时所产生的事件信息的工具。使用日志的主要目的是: 排错:通过日志可以排查应用程序运行过程中的问题。可以根据日志定位到错误产生的位置,找出错误原因。 分析:日志可以用来分析应用程序的运行情况,比如流量、访问量等,以便于对系统进行优化。 监控:可以通过日志监控应用程序的运行状态,以及捕捉运行时的安全事件或故障。 审计:日志提供了应用程序运行历史的审计线索,可以用于溯源或 forensic 分析。 理解:日志可以让开发者理解应用程序代码的执行流程。 日志实现:主要的日志实现包括:log4j、logback、log4j2、java.util.logging(JUL)
57 0
|
10月前
|
SQL 安全 Java
|
网络协议 Java API
【日志技术专题】「logback入门到精通」彻彻底底带你学会logback框架的使用和原理(入门介绍篇)
【日志技术专题】「logback入门到精通」彻彻底底带你学会logback框架的使用和原理(入门介绍篇)
146 0
|
设计模式 安全 Java
Java日志框架的发展历史,你不想了解一下吗
Java日志框架的发展历史,你不想了解一下吗
127 0
Java日志框架的发展历史,你不想了解一下吗
|
设计模式 监控 IDE
探析Java日志框架
        目前,几乎所有的应用程序中,都会用到日志框架来记录程序的运行信息。日志虽然不影响应用程序的运行结果,但是没有日志的应用程序是不健全,不完整的。良好的日志系统可以帮助我们快速的定位到程序问题,包括近几年火起来的日志分析系统,比如ELK,日志在我们系统中被重视起来,也起到了举足轻重的作用
107 0
|
存储 安全 Java
全网最全、最细致的Java日志框架以及门面技术(一)。
对于一个应用程序来说日志记录是必不可少的一部分。线上问题追踪,基于日志的业务逻辑统计分析等都离不日志。java领域存在多种日志框架,目前常用的日志框架包括Log4j 1,Log4j 2,Commons Logging,Slf4j,Logback,Jul。
全网最全、最细致的Java日志框架以及门面技术(一)。
|
XML 设计模式 Java
全网最全、最细致的Java日志框架以及门面技术(二)。
对于一个应用程序来说日志记录是必不可少的一部分。线上问题追踪,基于日志的业务逻辑统计分析等都离不日志。java领域存在多种日志框架,目前常用的日志框架包括Log4j 1,Log4j 2,Commons Logging,Slf4j,Logback,Jul。
全网最全、最细致的Java日志框架以及门面技术(二)。
|
监控 JavaScript Dubbo
pinpoint插件开发实践
Pinpoint是一款全链路分析工具,提供了无侵入式的调用链监控、方法执行详情查看、应用状态信息监控等功能。基于Google Dapper论文进行的实现。
5697 0