grails日志系统的研究

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

 对于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日志并进行多维度分析。
相关文章
|
3月前
|
运维 安全 Linux
【揭秘】如何轻松掌控Linux系统命脉?——一场探索日志文件奥秘的旅程,带你洞悉系统背后的故事!
【8月更文挑战第21天】日志文件对Linux系统至关重要,记录着包括应用行为、组件状态和安全事件在内的系统活动,如同系统的“黑匣子”。掌握日志查看技巧是系统管理的基础技能,有助于快速诊断问题。常用命令包括`cat`、`tail`和`grep`等,可用于查看如`/var/log/messages`和`/var/log/auth.log`等系统日志文件,以及特定应用的日志。`journalctl`则用于查看systemd服务日志。此外,`logrotate`工具可管理日志文件的滚动和归档,确保系统高效运行。
48 4
|
3月前
|
存储 数据采集 数据处理
【Flume拓扑揭秘】掌握Flume的四大常用结构,构建强大的日志收集系统!
【8月更文挑战第24天】Apache Flume是一个强大的工具,专为大规模日志数据的收集、聚合及传输设计。其核心架构包括源(Source)、通道(Channel)与接收器(Sink)。Flume支持多样化的拓扑结构以适应不同需求,包括单层、扇入(Fan-in)、扇出(Fan-out)及复杂多层拓扑。单层拓扑简单直观,适用于单一数据流场景;扇入结构集中处理多源头数据;扇出结构则实现数据多目的地分发;复杂多层拓扑提供高度灵活性,适合多层次数据处理。通过灵活配置,Flume能够高效构建各种规模的数据收集系统。
72 0
|
18天前
|
存储 Linux Docker
centos系统清理docker日志文件
通过以上方法,可以有效清理和管理CentOS系统中的Docker日志文件,防止日志文件占用过多磁盘空间。选择合适的方法取决于具体的应用场景和需求,可以结合手动清理、logrotate和调整日志驱动等多种方式,确保系统的高效运行。
19 2
|
30天前
|
XML JSON 监控
告别简陋:Java日志系统的最佳实践
【10月更文挑战第19天】 在Java开发中,`System.out.println()` 是最基本的输出方法,但它在实际项目中往往被认为是不专业和不足够的。本文将探讨为什么在现代Java应用中应该避免使用 `System.out.println()`,并介绍几种更先进的日志解决方案。
48 1
|
1月前
|
监控 网络协议 安全
Linux系统日志管理
Linux系统日志管理
46 3
|
1月前
|
监控 应用服务中间件 网络安全
#637481#基于django和neo4j的日志分析系统
#637481#基于django和neo4j的日志分析系统
35 4
|
3月前
|
存储 消息中间件 人工智能
AI大模型独角兽 MiniMax 基于阿里云数据库 SelectDB 版内核 Apache Doris 升级日志系统,PB 数据秒级查询响应
早期 MiniMax 基于 Grafana Loki 构建了日志系统,在资源消耗、写入性能及系统稳定性上都面临巨大的挑战。为此 MiniMax 开始寻找全新的日志系统方案,并基于阿里云数据库 SelectDB 版内核 Apache Doris 升级了日志系统,新系统已接入 MiniMax 内部所有业务线日志数据,数据规模为 PB 级, 整体可用性达到 99.9% 以上,10 亿级日志数据的检索速度可实现秒级响应。
AI大模型独角兽 MiniMax 基于阿里云数据库 SelectDB 版内核 Apache Doris 升级日志系统,PB 数据秒级查询响应
|
3月前
|
缓存 NoSQL Linux
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
131 1
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
|
1月前
|
监控 Linux 测试技术
Linux系统命令与网络,磁盘和日志监控总结
Linux系统命令与网络,磁盘和日志监控总结
57 0
|
1月前
|
监控 Linux 测试技术
Linux系统命令与网络,磁盘和日志监控三
Linux系统命令与网络,磁盘和日志监控三
40 0
下一篇
无影云桌面