温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java开源日志框架的原理是什么

发布时间:2021-12-30 09:46:21 来源:亿速云 阅读:134 作者:iii 栏目:大数据

这篇文章主要介绍“Java开源日志框架的原理是什么”,在日常操作中,相信很多人在Java开源日志框架的原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java开源日志框架的原理是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1.开发人员的日志意识 

#开发代码时要有意识的设想代码出现问题时的场景,针对场景记录关键程序的运行信息,容易定位问题

#打印日志必须包含环境信息,例如用户ID,角色,参数等

#对异常等错误信息必须打印错误级别及以上的日志,对线上日志定期检查

#生产环境将关闭的日志必须在打印日志前进行判断,以此提高效率、

#必须使用占位符代替字符串链接

#对关键业务步骤必须打点并记录耗时和结果

2.日志级别的设置

线上应用info就够了

*QA测试环境可以使用debug及以下级别

*刚刚上线的项目可使用debug级别

*上线后稳定的应用使用info级别

*常年不出现问题的应用使用error级别

3.日志数量和大小

控制日志的输出量,避免由于业务上量导致服务器磁盘占满。

单条打印日志不超过1KB

遇到连续的大日志是可采取抛弃的策略

4.切割方式

cat app.log > app.`date' '+%Y-%m-%d'`.log

cat /dev/null/ >app.log

存储到日期后缀的日志文件中后,清空当前日志

5.日志格式的配置

例如%p:输出日志信息的优先级

       %d:输出日志时间点的日期和时间

        %t:输出该日志事件的线程名

6.一行日志导致的线上事故

private void dosomething(...,Map  param){
   
   Log.debug("-------");
   
}

线上服务偶发报NullPointerException,通过堆栈调用,发现他是一个领域模型的toString()方法报出来的

public class DomainObject{
   
   public  String toString(){
       return "DomainObject" +DomainObject.getId();
     
   }

}

=toString方法在实现时需考虑链接字符串可能产生空指针异常,对可能为空的字段进行判断

=如果没有进行判空,在toString方法中抓住异常

=在增加打印日志时考虑toString方法是否有传导性

=一定要在try...finally语句进行资源释放

=是用缓存储存数据,确保存入的数据的完整性

=如果对象不大,并不是一个集合类,在toString方法中考虑Json序列化后将对象转化为字符串

到此,关于“Java开源日志框架的原理是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI