Spring+SpringMVC+MyBatis+easyUI整合优化篇(一)System.out.print与Log

日常啰嗦

距离上一次更新博客有一段时间了,主要是因为最近有开发任务,另外,这段时间也在学习docker的相关知识,所以博客就没有继续写了,推荐一本书《Docker技术入门与实战》(第二版),想体验一下docker的朋友可以看一下。
按照计划,第二阶段主要是讲一下项目优化上的一些东西,相关的工具已经在基础篇介绍了一些,所以在本阶段更多的是侧重于代码上,虽然做了一份粗略的计划,但是第一篇该写什么又犯了纠结,刚好有一次编写代码时看到一个方法中含有System.out.print()打印语句,这个方法大家都不陌生,第一份代码应该都是"世界,你好",所以本篇就讲一下System.out.print与Log吧。

原因简述

提到代码优化呢,其实需要注意的有很多个地方,因为一个系统涉及到很多技术,针对每个技术也需要对应的优化方案,因此,这是一件时间跨度长且复杂的工程,所以优化篇的开始呢,就先从最开始的地方讲起,打印语句,可能我们每个人都会在日常编码过程中都存在的一个问题,就是对于程序中的一些输出信息,喜欢使用System.out.print打印到控制台上,而不采用日志记录的方式输出到对应的日志文件。
为什么要讲这个事情呢?因为这个问题其实我也想了挺久的,就是System.out.print和log的区别在哪,区别到底有多大,刚好看到代码里有一些System.out.print代码,所以今天就写了这篇文章。

System.out.print与Log比较

  • System.out.print的优点:直观、方便。

  • Log的优点:异步、解耦、灵活、策略多。

  • 提到System.out.print,除了感觉到方便之外,还会想到其他的优点吗?似乎也就这个优点,syso快捷键瞬间就是一条打印语句,很顺手的一件事,除了这个感觉外,似乎也没有其他特别的感受了。

  • System.out.print和java运行程序运行在同一线程,也就是说,业务程序会等待System.out的动作,导致资源被占用,log4j、logback等日志工具进行调试信息的打印,这类工具是异步线程的,不会使程序处于等待状态。

  • System.out.print是在控制台输出,只能输出到控制台,功能上线后,总不能一直盯着控制台吧,而且日志文件需要保留,以供日后分析,是需要一套管理规范的,即便使用tomcat服务器,System.out会输出到catalina.out文件,catalina.out文件也不会一直存在,需要定期清空,如果不清空,大文件的读写也是挺影响性能的。说到这里,System.out.print写入的文件只有一个,对于一个文件的读写,这个io肯定会排队写,且System.out.print在当前线程,肯定对性能会有稍微的影响。

  • 程序中充斥着大量的System.out.print打印代码是相当不规范的。

补充说明

当然,说到影响服务器性能,必须是代码中存在大量的System.out.print才会明显的影响,而这个量需要有多大呢?考虑到系统体量、服务器版本、服务器配置这些因素,很难给一个固定的值,而且肯定也有很多人认为小量的不规范代码不会使人察觉的,我也支持这个观点,不过我们也要记得一句话,千里之堤溃于蚁穴,不能因为一件事是小事就选择性忽略掉,对自己要求高一点,写的代码也一定要整洁且正确。
项目由小项目慢慢成长为大项目,对于系统的日志要求肯定也越来越苛刻,后期肯定也要搭建日志系统的,日志信息的采集和分析也肯定是用对应的Log框架及相关的技术去做,比如ELK技术栈,这个时候,再问自己一个问题,在控制台上打印算是什么样的一种感受呢?
针对于日志的灵活性,根据一些日志框架的特点,也可以定制自己的日志规范,日志输出策略、日志存储策略、日志维护策略,想怎么输出怎么输出,想怎么存储怎么存储,非常的灵活。不同团队根据自己团队的特点制定出自己的日志策略,而不是一味的System.out.print打印到控制台上,与此相比,程序中充斥大量的System.out.print语句明显黯然失色。
以上为个人观点。

总结

今天讲这个事情,主要的原因,是因为有一次在查找System.out.print和log的区别时发现讲这个问题的文章比较少,所以自己整理了一下,另外一个方面,是觉得代码规范这个事情还是很重要的,希望大家日常编码工作中注意,并没有其他的意思,因为其实写顺手了,System.out.print确实不好改掉。
这里引用代码整洁之道中的一句话:

“进度可以重订,需求可以修改,团队动态可以修正,但糟糕的代码只是一直腐败发酵,无情的拖着团队的后腿。”

这里所讲的糟糕的代码,不只是不规范的输出语句,也包括了很多其他方面不规范和不整洁的代码,改掉不良习惯,养成良好的编程习惯,共勉。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,194评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,058评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,780评论 0 346
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,388评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,430评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,764评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,907评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,679评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,122评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,459评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,605评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,270评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,867评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,734评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,961评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,297评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,472评论 2 348

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,598评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,629评论 18 139
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,209评论 11 349
  • 合肥今天下雨了,美人很想念她的贵人,可也只能想念。因为贵人不能失去这份工作,这是贫贱夫妻哀伤的一部分。 常说贫贱夫...
    一个没有扁桃体的美人阅读 734评论 0 4
  • 食物摄入量和身体活动量是保持能量平衡,维持健康体重的两个主要因素。体重过高和过低都是不健康的表现,易患多种疾病,缩...
    爱上小米粥JoenHao阅读 2,459评论 0 0