1、简要说明
在介绍具体的API使用前,我们先了解下工具包的日志处理方式。在工具包的设计之初,我是使用自行发开的日志记录程序的。但是,随着日志处理的难度越来越大,还是决定找个功能完整的日志记录插件。因此,我选择了 logback 这个日志处理插件(工具包中使用的是v1.3版本)。它有个官方手册,大家可以参考:https://logback.qos.ch/manual/index.html
2、关于 logback。(以下文字来源于网络)
“Logback 是一个Java 开源日志框架,以继承改善 log4j 为目的而生,是 log4j 创始人 Ceki Gülcü 的开源产品。它声称有极佳的性能,占用空间更小,且提供其他日志系统缺失但很有用的特性。其一大特色是,在 logback-classic 中本地(native)实现了 SLF4J API(也表示依赖 slf4j-api)。”
在网上有一篇介绍它的文章,大家可以参考下:https://www.cnblogs.com/simpleito/p/15133654.html
3、关于 logback 的配置
其实,个人认为这个日志处理插件的使用,还是很简单的。它主要有几个部分(标签):
3.1、状态监听

在日志插件第一次启动的时候,会产生很多的输出信息。为了日志更加简洁,我们需要屏蔽它的内置输出信息。这个监听器需要放在配置文件的最上层。
3.2、参数配置

为了使用时,方便替换,我在配置文件上,定义了2个参数。一个是日志存放的文件夹。一个是日志文件的名称。
3.3、转换规则配置

这几个是我自己封装在工具包中的转换器。分别用于获取:本地IP地址、本地主机名、本地jvm版本。至于如何实现转换器,可以参考4.1章节。
3.4、输出配置
关于日志输出,有几种方式。我这里只使用了2种:标准流输出 和 文件滚动输出。具体配置参考如下:

对于标准输出流,配置较为简单。上面,我使用了自己定义的 ip 、 jvm 这2个自定义转换规则。至于,pattern的语法,大家可以参考官网。

对于文件输出,需要配置的内容较多。其中包括 文件名、最大文件大小、最长保留时间、总大小、是否在启动时清理历史文件。上面文件名规则种,使用了 我们定义的参数:LOG_HOME 和 LOG_NAME。
3.5、根配置

对于根配置,则较为简单。它只需要配置日志的打印级别 和 需要使用的输出配置名。日志打印级别,从小到大,排列如下:TRACE < DEBUG < INFO < WARNING < ERROR < FATAL 记住这个顺序是很重要的。比如:当日志级别设置为 INFO。那么在程序中, TRACE 和 DEBUG 级别的日志内容,就不会打印输出。
4、关于工具包日志处理 API 的使用
这里,我们着重讲解下,如何使用工具包编写 java 代码,提高我们的开发效率。
4.1、转换规则器的实现
在前面的 3.3 章节,我们介绍了框架封装的几个转换规则配置。这里我们以其中一个为例子,介绍如何开发一个规则转换器。如下图:

大家可以从上图中看出,只需要实现 ClassicConverter 的 convert 方法,就可以返回一些自定义的内容。这些内容,可以显示到日志信息中去。
4.2、配置文件的位置
现在,我们先不配置 logback 直接使用 Stdout 类,打印一个信息看看。如下图:

输出如下图:

从上图看出,我们不配置,它也是有一个默认的输出的。格式为:“时间 线程 日志级别 日志名 – 内容“
现在我们把自己的配置放入 src/main/resources 文件夹(如果自己没有特别的配置,可以参考依赖包中的 demo.logback.xml 文件),再看看输出效果。如下图:

输出如下:

日志文件生成如下:

4.3、日志记录的实现
经过前面的简单示例,我想大家应该很容易就理解了工具包中的日志记录处理方式。那么它是怎么实现的呢?其实,这个也很简单。因为 logback 插件,本身是实现了 SLF4J API 的。所以,在封装上,我们只需要调用 SLF4J API 的 Java 接口。如下图:

从图中,我们可以看到。在 Stdout 静态类中,我们定义了一个静态常量 mylogger,它的日志名为 common。这个就是工具包 pdc-common-tool 中唯一的日志记录对象。它的日志记录方式,是通过用日志级别函数,来记录日志信息。
在工具包 pdc-common-tool 中,一般都是以 INFO 级别记录信息。有个别函数使用 DEBUG 级别记录。如果我们想要按照自己的想法,自定义日志记录级别,那直接调用 mylogger 常量即可。如下图:

输出如下:

4.4、日志工具Stdout的使用
经过前面的介绍,大家应该对 Stdout 日志工具类有所了解。接下来,我们举例说明,Stdout 如何使用。在Stdout工具类中,主要有4类打印处理:标准输出、格式化输出、数组输出 以及 记录要执行的 sql 语句以及其参数信息。其中,sql 语句信息,是工具包框架自己用的,DEBUG 级别的输出,一般不会显示。
4.4.1 标准输出

结果如下:

4.4.2 格式化输出
其实,关于 Java 的格式化处理,大家可以参考 String.format 静态函数。工具包就是使用它的。如下图:

结果如下:

4.4.3 数组输出
之所以有这个数组处理,主要是因为System.out.println 没法输出数组的元素。所以单独搞了一个数组的输出处理。

结果如下:

本章完结。