教育房产时事环球科技商业
投稿投诉
商业财经
热点动态
科技数码
软件应用
国际环球
晨报科学
新闻时事
信息智能
汽车房产
办公手机
教育体育
生活生物

日志代码(小白学习如何打日志)

  日志代码(小白学习如何打日志)
  一、Java打日志的基础
  以前自己自学的时候,排查问题只会写下面的代码:try{  //doSomething  }catch(Exceptione){  e.printStackTrace();  }  ----------  //查看某个数据的值时:  System.out.println(xxxx);
  去到公司就发现上面的代码全不见了,剩下的是:LOGGER.info("begintorunJava3y:{}",id);  ----  LOGGER.error("excepitonoccurswhenrunJava3y{},exception{}",id,e.toString());
  如果使用e.printStackTrace();的话,打印在控制的信息分析不方便:
  而我们将信息分等级和时间记录在服务器的磁盘上,有问题了就可以根据对应的信息去查找相关的日志(这样排查起来是十分方便的):
  我们再来看一下一般的日志长什么样的:
  例如:现在有人来反馈某某某用户好像收不到短信,给出发送时间和用户ID,我们就可以在日志上找出该用户在我们系统的发送状态(例如图上的:state:81,我们就认为是发送成功状态)
  那么,问题来了,我们在哪打日志?《手册》上其实已经给出了答案:谨慎地记录日志。生产环境禁止输出 debug 日志;有选择地输出 info 日志;如果使
  用 warn 来记录刚上线时的业务行为信息,一定要注意日志输出量的问题,避免把服务器磁盘
  撑爆,并记得及时删除这些观察日志。
  大量地输出无效日志,不利于系统性能提升,也不利于快速定位错误点。记录日志时请思考:这些
  日志真的有人看吗?看到这条日志你能做什么?能不能给问题排查带来好处?
  1.1什么叫做 打点 ?
  打日志最常见的就是用来打印出程序执行时的相关信息,用于快速定位问题和排查问题。我一开始也是这么理解的,但是其实还可以延伸一下。
  我现在搞的那个系统,我们还使用日志在系统的执行链路上打点。比如说,我现在要推送一条通知消息,通知消息其实就是下面这种:
  这个过程大概是如此的:
  首先别人调用我的RPC提供的接口(或者我自己调用自己的接口),发现这是一个通知消息。于是我组装成对应的Task,异步放到消息队列中
  另一个系统从消息队列中取出Task,对这个Task进行业务的处理(比如说是否夜间屏蔽,是否强制发送等等),然后调用HTTP接口把这个Task交给下游
  下游做的事其实也很多,整块链路很长(比如要调用SDK的库,Android和IOS又做不同的处理)
  而我们又希望在推送完了之后能统计出一些指标(曝光量,点击率,转化率)等等。于是乎,就需要在一些关键的位置上打一个日志(专业点叫做打点)
  在整块链路都打通了以后,将这些点位(日志)收集起来,放到实时流式处理平台(storm/flink)上清洗/过滤。如果是实时需要用到的放到Redis,离线的放在Hive。
  二、手册规范
  2.1 使用门面模式的日志框架【强制】应用中不可直接使用日志系统(Log4j、Logback)中的 API,而应依赖使用日志框架
  SLF4J 中的 API,使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一。
  门面模式我之前也写过一篇笔记:三分钟学会门面模式!
  其实说白了就是希望抽象出一层API,能够在切换具体日志框架的时候不需要大面积更改。
  这个我们可以按学JDBC的时候去理解:
  无论我是接入MySQL、Oracle还是SQL Server,但我的接口永远都是那一套,切换数据库时不需要更改我的Java API
  看了一下公司的项目,采用的是SLF4J+Logback
  2.2 调用RPC接口使用Throwable类拦截【强制】在调用 RPC、二方包、或动态生成类的相关方法时,捕捉异常必须使用 Throwable
  类来进行拦截。
  之前在排查问题的时候,有个问题死活排不出来,DeBug的时候一直没进catch模块。后来我学长就说:"要不你改成Throwable试试?try{  }catch(Throwablee){    }
  我就很疑问,说:"为啥要改成Throwable呢?我们用Exception不就可以捕获所有的异常了么,Exception是Throwable的一个子类,但Exception已经是包含所有的Java异常了呀"
  众所周知,Throwable有两个子类:
  Error(一般我们都会把这个忽略掉...一般情况下出现了Error程序都运行不起来)
  ExceptionTheThrowableclassisthesuperclassofallerrorsandexceptionsintheJavalanguage
  在《手册》上也有对上面的规则进行说明:说明:通过反射机制来调用方法,如果找不到方法,抛出 NoSuchMethodException。什么情况会抛出
  NoSuchMethodError 呢?二方包在类冲突时,仲裁机制可能导致引入非预期的版本使类的方法签名不匹
  配,或者在字节码修改框架(比如:ASM)动态创建或修改类时,修改了相应的方法签名。这些情况,即
  使代码编译期是正确的,但在代码运行期时,会抛出NoSuchMethodError。
  大概的意思就是说:调用 RPC、二方包、或动态生成类的相关方法时,可能直接抛出的是Error,而catch Exception是无法捕获得到的。

签证管多久(中国工作签证有效期是多久)申请出国签证都有哪些类型呢?我们都知道,不同国家具体签证种类和相关费用的办理程序都是不同的。那么出国签证都有哪些类型呢?这些签证又该签证怎么办理呢?1商务签证办理最基本的商务签证,宝宝多久补锌(婴儿缺锌的表现与症状有哪些)锌是人体生长和能量所必需的微量元素,对免疫系统的发育非常重要,孩子缺锌,容易导致身体免疫力下降,因此要注意日常生活中的调理,孩子缺锌的表现,主要有以下6点。宝宝缺锌的症状1在排除疾中药要煎多久(中药煎一遍效果好还是两遍好)中药汤剂的煎服法,自古以来就受到历代医家的重视,明代着名医药学家李时珍曾指出煎煮不当的不良后果凡服汤药,虽品物专精,修治如法,而煎药者鲁莽造次,水火不良,火候失度,则药亦无功。清代绿豆浸泡多久(吃完绿豆多久能吃中药)绿豆的颜色绿色健康,看起来让人觉得很有食欲,我昨天去超市的时候在超市里面买了一些绿豆,请问煮绿豆汤绿豆要泡多久呢?下面一起来看看吧!煮绿豆汤绿豆要泡多久泡30分钟左右为宜。绿豆是常离婚办理需要多久(离婚需要多少时间才能离)婚姻不是恋爱,她更需要精心的经营去年8月27日提交十三届全国人大常委会第五次会议审议的民法典各分编草案,拟作出一条规定自婚姻登记机关收到离婚登记申请之日起一个月内,任何一方不愿意离做试管婴儿要多久时间(做试管婴儿后要躺多久)随着近些年来辅助生殖技术越来越被不孕症患者所接受,试管婴儿更是家喻户晓。大家明白了试管婴儿并不是婴儿从试管中长大被带回家,而仅仅是女性的卵子与男性的精子是在试管内结合受精,形成胚胎逆战多久出的(逆战离震多久出的)亲爱的NZer为提供更好的游戏体验,逆战将于2021年12月14日400900停服更新,游戏版本号升级为1。0。1。99,维护期间,欢迎进入逆战官方论坛)参与讨论更新内容以及相关精胰腺癌疼多久(胰腺癌小腹痛到了几期)走得太突然了!提起老张,家人总是会先红了眼睛,然后感叹世事无常。去年年底,老张就开始频频腹痛,向来勤俭持家的他只到小诊所看了病,诊所的医生诊断为胃病,老张吃了半个月的药,仍不见好转我都寂寞多久了(我寂寞寂寞就好)其实现在的男女都有一个共同点都是寂寞的灵魂,想找个人聊天,聊天是可以聊出感情的,但是男女的需求不样,男人聊的是寂寞,女人聊天只是想找人说说话,大多数都不图钱也没想见面的意思,要的是痛风不能吃哪些东西(痛风最怕的三种水果)关于痛风,想必很多人都听过,而真正体验过这种疼痛的人,才知道这种痛感。痛风发作,确实难受,一般会维持1周左右,最长的可能超过1个月,最短的23天也可能恢复正常,事实上,每个人的病程面条怎么做好吃(超简单的懒人汤面)7号就是立冬了,今年的冬天已经按响了门铃。这样的天气里,最想吃的就是一道热乎乎的有汤有水的美食,热汤面便是最佳选择。下班到家又冷又累,不想做饭,这时候简单煮一锅汤面,有滋有味又暖身
签证管多久(中国工作签证有效期是多久)申请出国签证都有哪些类型呢?我们都知道,不同国家具体签证种类和相关费用的办理程序都是不同的。那么出国签证都有哪些类型呢?这些签证又该签证怎么办理呢?1商务签证办理最基本的商务签证,宝宝多久补锌(婴儿缺锌的表现与症状有哪些)锌是人体生长和能量所必需的微量元素,对免疫系统的发育非常重要,孩子缺锌,容易导致身体免疫力下降,因此要注意日常生活中的调理,孩子缺锌的表现,主要有以下6点。宝宝缺锌的症状1在排除疾中药要煎多久(中药煎一遍效果好还是两遍好)中药汤剂的煎服法,自古以来就受到历代医家的重视,明代着名医药学家李时珍曾指出煎煮不当的不良后果凡服汤药,虽品物专精,修治如法,而煎药者鲁莽造次,水火不良,火候失度,则药亦无功。清代绿豆浸泡多久(吃完绿豆多久能吃中药)绿豆的颜色绿色健康,看起来让人觉得很有食欲,我昨天去超市的时候在超市里面买了一些绿豆,请问煮绿豆汤绿豆要泡多久呢?下面一起来看看吧!煮绿豆汤绿豆要泡多久泡30分钟左右为宜。绿豆是常离婚办理需要多久(离婚需要多少时间才能离)婚姻不是恋爱,她更需要精心的经营去年8月27日提交十三届全国人大常委会第五次会议审议的民法典各分编草案,拟作出一条规定自婚姻登记机关收到离婚登记申请之日起一个月内,任何一方不愿意离做试管婴儿要多久时间(做试管婴儿后要躺多久)随着近些年来辅助生殖技术越来越被不孕症患者所接受,试管婴儿更是家喻户晓。大家明白了试管婴儿并不是婴儿从试管中长大被带回家,而仅仅是女性的卵子与男性的精子是在试管内结合受精,形成胚胎逆战多久出的(逆战离震多久出的)亲爱的NZer为提供更好的游戏体验,逆战将于2021年12月14日400900停服更新,游戏版本号升级为1。0。1。99,维护期间,欢迎进入逆战官方论坛)参与讨论更新内容以及相关精胰腺癌疼多久(胰腺癌小腹痛到了几期)走得太突然了!提起老张,家人总是会先红了眼睛,然后感叹世事无常。去年年底,老张就开始频频腹痛,向来勤俭持家的他只到小诊所看了病,诊所的医生诊断为胃病,老张吃了半个月的药,仍不见好转我都寂寞多久了(我寂寞寂寞就好)其实现在的男女都有一个共同点都是寂寞的灵魂,想找个人聊天,聊天是可以聊出感情的,但是男女的需求不样,男人聊的是寂寞,女人聊天只是想找人说说话,大多数都不图钱也没想见面的意思,要的是痛风不能吃哪些东西(痛风最怕的三种水果)关于痛风,想必很多人都听过,而真正体验过这种疼痛的人,才知道这种痛感。痛风发作,确实难受,一般会维持1周左右,最长的可能超过1个月,最短的23天也可能恢复正常,事实上,每个人的病程面条怎么做好吃(超简单的懒人汤面)7号就是立冬了,今年的冬天已经按响了门铃。这样的天气里,最想吃的就是一道热乎乎的有汤有水的美食,热汤面便是最佳选择。下班到家又冷又累,不想做饭,这时候简单煮一锅汤面,有滋有味又暖身