20145204《Java程序设计》第8周学习总结

20145204 《Java程序设计》第8周学习总结

教材学习内容总结

  1. java.util.logging包提供了日志功能相关类与接口,不必额外配置日志组件,就可以在java平台中使用。使用日志的起点是logger类,Logger类的构造函数标示为protected,不是java.util.logging同包的类不能直接以new创建,要使用logger实例,必须使用Logger的静态方法。
Logger logger = Logger.getLogger("ch08.Main");

  1. 调用getLogger()时,必须指定Logger实例所属名称空间(Name space),名称空间以"."作为层级区分,名称空间层级相同的Logger,其父Logger组态相同。

  2. Logger与Handler预设都会先依Level过滤信息,如果没有做任何修改,取得的Logger实例之父Logger组态,就是Logger.GLOBAL_LOGGER_NAME名称空间Logger实例的组态,这个实例的Level设定为INFO,可通过Logger实例的getParent()取得父Logger实例,可通过getLevel()取得设定的Level实例。在没有任何组态设定的情况下,默认取得的Logger实例,层级必须大于或等于Logger.GLOBAL-LOGGER-NAME名称空间logger实例设定的Level.INFO,才可能输出信息。

  3. 在经过Logger过滤之后,还得再经过Handler的过滤,一个Logger可以拥有多个Handler,可通过Logger的addHandler()新增Handler实例。

  4. handler是负责输出,Formatter负责格式化,而信息过滤是由Filter。handler有默认的isloggable()操作,会先依据Level过滤信息,在使用指定的filter过滤信息。

  5. 用程序根据不同地区使用者,呈现不同语言、日期格式等称为本地化(Localization),如果应用程序设计时,可在不修改应用程序情况下,根据不同使用者直接采用不同语言、日期格式等,这样的设计考虑称为国际化(internationalization),简称i18n。国际化的三个重要概念是地区(Locale)信息、资源包(Resource bundle)与基础名称(Base name)。

  6. 使用ResourceBunde时,根据基础名称取得相应的信息文档:

  • 使用指定的Locale对象取得信息文档;
  • 使用Locale.getDefault()取得的对象取得信息文档;
  • 使用基础名称取得信息文档。
  1. 可以使用Date来取得完整日期时间,可单纯使用toString()取得文字描述,或使用DateFormat格式化日期。

教材学习中的问题和解决过程

  1. 取得实例后,使用log方法输出信息,输出信息是可以用level的静态成员指定层级。代码截图:

  1. 若要显示INFO一下的信息,不仅要将logger的层级设定为Level.INFO,也得将handler的层级设定为level.INFO。

  1. 如果要定义Formatter,可以继承Formatter后操作抽象方法format()。

本周代码托管截图

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 3500行 30篇 400小时
第一周 100/100 1/1 20/20
第二周 200/300 1/2 30/50
第三周 300/600 1/3 28/78
第四周 400/1000 1/4 20/98
第五周 350/1350 1/5 30/128
第六周 450/1800 2/6 32/ 160
第七周 350/2150 2/8 20/ 180
第八周 250/2400 2/10 22/202

参考资料

原文地址:https://www.cnblogs.com/yayaer/p/5428770.html