目录
简介
在java程序中,我们通过日志来定位和发现项目中可能出现的问题。在现代java项目中,我们使用log4j或者slf4j,Logback等日志记录框架来处理日志问题。
JVM是java程序运行的基础,JVM中各种事件比如:GC,class loading,JPMS,heap,thread等等其实都可以有日志来记录。通过这些日志,我们可以监控JVM中的事件,并可以依次来对java应用程序进行调优。
在JDK9中引入的Xlog日志服务就是为这个目的而创建的。
通过xlog,JDK将JVM中的各种事件统一起来,以统一的形式对外输出。通过tag参数来区分子系统,通过log level来区分事件的紧急性,通过logging output来配置输出的地址。
xlog的使用
先看一个最简单的xlog的使用例子:
输出结果:
日志非常非常长,这里就不全部列出来了。从输出的日志我们可以看到java -verson命令中JVM执行了诸多的操作。
我们可以看到日志中对每一个操作都列出了操作花费的时间,日志级别和操作所属的分类。
通过这些日志,我们对于JVM的运行可以有更加深入的理解。
使用java -Xlog:help命令我们看一下xlog的基本格式:
selections
selections表示的是到底需要输出哪些信息。是以tag=level来表示的。
tag表示的是JVM中的事件或者子系统:
levels表示的是日志的级别:
下面举个例子:
输出结果:
output
output表示将日志输出到什么地方。
output的可选项:
stdout表示标准输出,stderr表示标准错误。file表示输出到文件里面。
举个例子:
decorators
decorators表示输出哪些内容到日志中。
看下这个例子:
输出结果:
总结
xlog是JDK9中提供的非常有用的一个功能。大家可以在日常的工作中使用。
本文作者:flydean程序那些事
欢迎关注我的公众号:程序那些事,更多精彩等着您!