java.util.loggging
包提供了日志功能相关类与接口Logger
类,Logger类的构造函数表示为protected,不是java.util.logging
同包的类不能直接以new建立,取得Logger实例,必须用Logger的静态方法getLogger()
getLogger()
时必须指定Logger实例所属空间名称,以 . 区分层级,名称空间层级相同的Logger,其父Logger组态相同.class
,可取得该类的java.lang.class
实例,调用其getName()
就能够取得类全名要输出的信息,必须先经过Logger的Level与Filter过滤,再经过Handler的Level和Filter过滤,格式化信息的动做交给Formatterhtml
Logger.GLOBAL_LOGGER_NAME
(INFO)名称空间Logger实例的组态,Handler默认是ConsoleHandler
getParent()
取得父Logger实例,getlevel()
取得设定的Level实例setLevel()
设定层级,可用Level内建几个静态成员来指定intVlue()
取得内含int值log()
时指定的Level实例内含的int值小于Logger设定的Level实例内含的int值,Logger就不会记录信息Level.OFF
用于关闭全部信息输出,Level.ALL
用于容许全部信息输出addHandler()
、removeHandler()
新增、移除Handler实例getHandlers()
方法来取得目前已有的Handler实例数组setLevel()
设定信息一些日志层级,Logger有其对应的简便方法java
MemoryHandler
(信息存在缓冲区,超出缓冲区大小)、StreamHandler
(可自动指定OutputStream实例)、ConsoleHandler
(日志信息会显示在控制台上)、FileHandler
(创建日志输出时使用的FileOutputStream)、SocketHandler
(联网,将日志信息传至指定主机)addHandler()
、removeHandler()
新增、移除HandlerConfig()
是个简便方法,能够直接Level.CONFIG层级输出信息,也有severe()
、info()
等简便方法调用Logger实例的setUseParentHandlers()
设定为false,日志不会传播给父Logger,使用setParent()
方法指定父Loggergit
publish()
、flush()
与close()
方法来定义Handler,操做时考虑信息过滤与格式化自定义Formatter,继承Formatter后操做抽象方法format()
,传入LogRecord,储存全部日志信息api
经过logging.properties来设定Logger组态,修改.properties后另存至程序CLASSPATH中,指定java.util.logging.cofig.file系统属性为.properties名称数组
ResourceBundle的静态getBundle()
方法会取得一个ResourceBundle实例,给定自变量名称是信息文档的主文件名,取得实例后用getString()
指定键取得文档中对应值app
将Unicode编码表示的.properties转回中文,使用-reverse自变量函数
spilt()
方法,返回切割后各子字符串组成的String数组replaceAll()
会将符合规则表达式的字符串取代后返回新字符串使用()将规则表达式分组,被分组的规则表达式能够在稍后回头参考学习
compile()
来取得mather()
方法将指定字符串依规则表达式切割matcher()
方法指定要比较的字符串,find()
方法看是否是有下一个符合字符串,lookingAt()
看字符串开头是否符合规则表达式,group()
方法返回符合的字符串replaceAll()
方法,将符合规则表达式的部分以指定的字符串替代,replaceFirst()
与replaceEnd()
分别可取代首个、最后反符合规则表达式部分,start()
方法可取得符合字符串的起始索引,end()
取得符合字符串最后一个字符后的索引编码
join()
静态方法能够指定每一个字符串间以什么间隔joining()
静态方法paralleSort()
方法能够将指定的数组分为子数组并以平行化方式分别排序,而后再进行合并排序.net
Arrays
的asList()
方法返回List,然后调用stream()
方法取得stream实例Arrays
的stream()
方法,能够指定数组后返回Stream实例本周代码调试没有问题
B .:wq!
C .:q!
D .:q
理解状况 C.:wq 是保存退出。 !表示强制。
B .final
C .public
D .private
E .none of the above(以上都不是)
B .Instant.ofEpochSecond(epochSeconds)
C .date.toInstant()
D .dateTime.toInstant()
E .time.toInstant()
F .zonedDateTime.toInstant()
教材学习中的问题和解决过程, 一个问题加1分
代码调试中的问题和解决过程, 一个问题加1分
学习了将系统运行记录到日志的方法,经过日志的层级关系,结合了继承的知识,更深的理解了父类和子类的关系,还学习了国际化标准和规则表达式
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 0/0 | 2/2 | 20/20 | |
第二周 | 186/186 | 2/4 | 18/38 | |
第三周 | 689/875 | 3/7 | 22/60 | |
第四周 | 242/1117 | 2/9 | 30/90 | |
第五周 | 698/1815 | 2/9 | 30/120 | |
第六周 | 1269/3084 | 2/9 | 30/120 | |
第七周 | 342/3426 | 2/9 | 30/120 | |
第八周 | 398/3824 | 2/9 | 30/120 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进本身的计划能力。这个工做学习中很重要,也颇有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
计划学习时间:24小时
实际学习时间:23小时
改进状况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)