网站首页 > java教程 正文
Java历史悠久、应用广泛,是很多想要从事IT开发行业人的首要选择。日志是程序运行过程的信息,其数据能够帮助开发人员提前发现并避开异常,在错误发生后能够找到事件的起因,并纠正错误,达到预期的运行效果。想要成为一个优秀的Java工程师,一定要学会合理的使用日志,今天小编就给大家分享一下日志知识点总结。
Java中有哪些不同的日志级别?
1)debug是最低的限制级别,这个级别只能用于开发和测试环境中,不可以用于生产环境。
2)info略高于debug的限制级别,可以用这个级别记录一些信息型消息比如服务器启动成功、输入的数据、输出的数据等。
3)warn的限制级别高于info,它用来记录警告信息比如客户端和服务器之间的连接中断、数据库连接丢失、Socket达到上限。
4)error比warn的限制级别还高,用于记录error和Exception。你可以在该日志级别上设置警报装置,并且提醒运维团队对之做出处理。error非常重要,你必须将其记录下来。
5)fatal是指可能导致程序终止的非常严重的时间,在这种事件之后你的应用很可能会崩溃。
6)off具有最高的级别,旨在关闭Java中的日志功能。
Java中常见的日志工具有哪些?
log4j。最受欢迎的Java日志组件,是一款基于Java的开源日志组件。Log4j功能非常强大,我们可以将日志信息输出到控制台、文件、用户界面,也可以输出到操作系统的事件记录器和一些系统常驻进程。
gclogviewer。Java日志查看工具,是一个支持jdk 6的gclog可视化工具,和gcviewer相比,gclogviewer支持根据gclog生成GC的趋势图,也支持生成调优建议所需的数据趋势图。
LF4J。基于API的Java日志框架,SLF4J提供了一个简单统一的日志记录接口,开发者在配置和部署时只需要实现这个接口即可实现日志功能。
Flume。Apache日志服务器,是一个日志分析系统,Flume是分布式的,它有一个非常灵活的架构,用来收集、聚合以及移动大量日志数据,并且提供可靠、容错的系统架构。
zLogFabric。日志存储系统,是一个集成的跨平台日志解决方案,通过消息系统收集各个应用的日志信息存储到一个集中式的系统中。
Java中如何打开日志?(以SLF4J为例)
什么时候应该打开日志呢?主要分为三种情况:1)当你遇到问题的时候,只能通过debug功能来确定问题;2)当你碰到if…else或者switch这样的分支时,要在分支的首行打印日志确定进入了哪个分支;3)以功能为核心进行开发,你应该在提交代码前,可以确定通过日志可以看到整个流程。
基本格式
必须使用参数化信息的方式:
logger.debug(''Processing trade with id:[{}] and symbol : [{}] '', id, symbol);
对于debug日志,必须判断是否为debug级别后,才进行使用:
if (logger.isDebugEnabled()) {
logger.debug(''Processing trade with id: '' +id + '' symbol: '' + symbol);
}
不要进行字符串拼接,那样会产生很多String对象,占用空间、影响性能。
如有参数变量,应该写成如下写法:
logger.debug(''Processing trade with id:[{}] and symbol : [{}] '', id, symbol);
这样的格式写法,可读性更好,对于排查问题更有帮助。
猜你喜欢
- 2024-11-12 java日志那些事儿-日志野史(java 日志包)
- 2024-11-12 大厂都是如何解决Java日志级别,重复记录、丢日志问题?
- 2024-11-12 五年Java经验,面试还是说不出日志该怎么写更好?
- 2024-11-12 Java常用日志框架总结(java的日志框架)
- 2024-11-12 java日志组件(java 日志系统)
- 2024-11-12 java打日志超简单(java如何输出日志)
- 2024-11-12 Java企业级项目的日志规范(java企业级项目的日志规范有哪些)
- 2024-11-12 小白也能看懂Java 日志体系(SLF4J)
- 2024-11-12 开发须知:开发者须知的4类Java日志
- 2024-11-12 谈谈日志的最佳实践(谈谈日志的最佳实践方式)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)