JDK日志框架之综合实现就是将之前的一切组合起来,实现一个JDK日志类的结合。
成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都网站设计、做网站、汾阳网络推广、微信小程序、汾阳网络营销、汾阳企业策划、汾阳品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联公司为所有大学生创业者提供汾阳建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com
JDK日志清单 12 描述了如何在一段实际的代码中将 STAF 日志处理类和 JDK 日志类结合起来。 从清单 12 可以看出,该实例默认指定输出到 STAF 日志服务的日志名称为“ staflogger ”。然后通过动态配置的方法来设定 Handler,Level 和 Formatter .最后在调用JDK的日志对象的log 方法记录了 4 种自定义级别的日志。
JDK日志清单 12 一个完整的例子
package demo.staflog;
- import java.util.logging.Logger;
- public class STAFLoggerTest {
- public static void main(String[] args) {
- Logger logger = Logger.getLogger(STAFLoggerTest.class.getName());
- logger.setUseParentHandlers(false);
- logger.setLevel(STAFLevel.DEBUG);
- STAFHandler stafHandler = new STAFHandler("staflogger");
- stafHandler.setLevel(STAFLevel.DEBUG);
- stafHandler.setFormatter(new STAFFormatter());
- logger.addHandler(stafHandler);
- //log
- logger.log(STAFLevel.DEBUG, "debug log");
- logger.log(STAFLevel.FATAL, "fatal log");
- logger.log(STAFLevel.ERROR, "error log");
- logger.log(STAFLevel.TRACE, "trace log");
- }
- }
但我们也可以将这些代码改为配置文件的方式,其配置文件如清单 13 所示:
JDK日志清单 13 STAFLog 类定义
◆设置日志对象的 Handler
demo.staflog.STAFLoggerTest.handlers= demo.staflog.STAFHandler
demo.staflog.STAFLoggerTest.level = DEBUG
◆取消发送日志到父 Logger 对象
demo.staflog.STAFLoggerTest.useParentHandlers = FALSE
◆设置 Handler 的名称,输出级别和格式化对象
demo.staflog.STAFHandler.name= staflogger
demo.staflog.STAFHandler.level = DEBUG
demo.staflog.STAFHandler.formatter = demo.staflog.STAFFormatter
这样代码可以简化为清单 14 .
JDK日志清单 14 STAFLog 类定义
- public class STAFLoggerTest {
- private static Level defaultLevel = STAFLevel.DEBUG;
- public static void main(String[] args) {
- //log
- logger.log(STAFLevel.DEBUG, "debug log");
- logger.log(STAFLevel.FATAL, "fatal log");
- logger.log(STAFLevel.ERROR, "error log");
- logger.log(STAFLevel.TRACE, "trace log");
- }
- }
配置文件的方式相对于动态配置的方式更加灵活,因为这无需改变和重新编译代码,只需要修改配置文件,就能修改日志中 Handler,Level 和 Formatter 的组合配置,这对于已经部署发布的软件而言,有着更为实际的意义。
当运行代码后,在命令行中输入 STAF 命令来显示 STAF 日志 staflogger:
- mymachine:~ myname$ staf local log query machine mymachine logname staflogger
- Response
- --------
- Date-Time Level Message
- ----------------- ----- ----------
- 20081111-16:15:21 Debug debug log
- 20081111-16:15:21 Fatal fatal log
- 20081111-16:15:21 Error error log
- 20081111-16:15:21 Trace trace log
这显示了我们刚才在 java 代码中记录的信息,它们已经被输出到 STAF 的日志服务中了。
结束语
那么综上所述,JDK 日志框架简单灵活,它虽然比 log4j 出现的时期晚,但其功能并不比 log4j 少。而且 JDK 日志框架直接隶属于 JDK,被 Java 标准所支持而无需安装第三方库文件。本文介绍了 JDK 日志框架的结构,如何扩展JDK 日志框架使之满足实际的项目需求。并以如何在 Java 程序中将日志输出到 STAF 的日志服务中为例,一步步描述了如何实现扩展 JDK 日志组件,使之和 STAF 日志服务结合到一起,同时如何创建灵活的配置文件来组合日志框架组件。希望本文可以给其他需要扩展JDK 日志组件的开发者提供帮助。
网站题目:JDK日志框架之综合实现浅析
本文来源:http://www.shufengxianlan.com/qtweb/news42/535992.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联