00:00
好,接下来呢,我们来看基本配置说明啊,基本配置说明这块呢,首先第一个节点我们要知道的呢,就是刚才我们写的这个日志配置的根节点configuration,这个是必要的,接下来呢,第二个节点就是context name context name呢主要就是它要放在这个configuration下面啊,然后我把它写一下。写在这个地方,它呢表示的就是上下文这块呢,我们是给这个日志的上下文呢起一个名称啊,当然它有一个默认的名称,默认的名称呢是default啊,如果你不想用这个default的话呢,就艾特硅谷SRB上文宝就可以了,当然这个名称其实就是区分不同的应用程序的,如果有不同的应用程序,我们的日志啊,就一般会起不同的名字,就是一个title头啊,一个一个一个标志位啊,所以它呢其实并不太重要,好我们不要起一些特殊的符号啊,作为啊这样的一个contact name就可以了,好,这个是context name的一个定义,然后接下来呢是property叫属性,Property呢也是放在configuration这个根节点下面的,它是用来定义一些全局变量的,那这全局变量有什么作用呢?就是有可能呢后面呢会多次用到这样的一个值,所以呢,为了后面使用方便,我们呢就以一个前置变量的形式把它定义出来啊,比如说日志输出的位置,我们呢后面呢可能要有好几种这个志。
01:23
配置的方案,然后呢,这个日志输出的位置呢,可能都要配到这样的一个日志目录下,那干脆呢,我们不想多次的去去写,就像咱们在正常的应用程序当中定义变量似的,这个东西定义出来可以复用好,我们就定义这样的一个日志输出目录,这样的一个property。这是它啊,然后接下来呢,就是我们定义再定义一个,嗯,控制台日志的彩色日志,这是什么呢?这个就是啊,我们的日志呢,我们可以定义它啊,是打印在控制台上还是打印在文本文件当中,那么如果打印在控制台上的话呢,我想让这个控制台上输出的这些日志呢,有一些颜色啊,或者就是有一关键的部位呢,有一些高亮,这样的话呢,看起来呢会更舒服一些,它的日志的可读性呢,就会就会更好一些啊,比我们读这种黑白的日志呢要好多了,好那所以这样的话呢,我们就配置一个日志的颜色,好日志的颜色这块呢,实际上它隐含了一个日志输出的格式哈,你会发现呢,这个名字就是这个每个property它都有一个名字,一个value,这个名字是我们自己定义的,这个value呢,是根据需要啊,比如说我就想把日值存到这个位置,那这是根据需要定义的,那假设说我这块可以写二零。
02:38
0921是吧,我写到这个目录下,所以这是根据需要定制的,同样这个也是一样,这是个名字,然后呢,这个是根据需要定制的,这个是什么呢?这个是具体的格式,比如说这块呢,我是用黄色啊来展示一个日志,它输出的具体的时间和日期,然后时间和日期呢,我具体的时间日期格式呢,是这样去定义的,所以这是时间日期部分的一个输出,然后这块呢,是我是想输出一个日,这个日志的级别,比如说它是音符级别呀,还是debug级别呀,那无论它是哪个级别啊,我都想让它占五个字符的位置,这样的话,级别这字符串呢会对齐啊,因为比如说音缝它是四个字符,对吧。
03:21
Info啊。比如说in for,它是四个字啊,然后呢,你这个ER or,它是五个字符,回头它输出到控制台上之后呢,如果这个占四个字符,这个占五个字符,那后面的内容呢,从它输出出来之后呢,它就对不齐了,那我们希望什么呢?我们希望呢,它能够这样是吧?啊,就是都都占这个四个字符啊,呃,都占五个字符,这样的话呢,后面的这个内容呢,它就能对齐了,是这样的一个意思啊好,所以这块呢用高亮,高亮是什么颜色呢?高亮呢,它会根据我们这个控制开发工具的具体的颜色来选择高亮的方案,比如说你开发工具是白色的,现在我这个是浅色的背景,对吧,那它高亮可能就会用深色来高亮了,如果你开发工具是黑色的深色的背景,那它高亮可能就会用浅色来高亮,所以这个是灵活的,然后接下来呢,这个是log,就是日志记录器的名字啊,也就是其实日志记录器的名字就意味着这个日志是在哪个类中输出的,一般情况下会用类名。
04:24
啊啊,默认作为日志记录器的名字,那么用绿色的啊这样的一个文字来显示这个日志呢,是在哪个具体的类当中输出,然后接下来呢,这message啊就是。啊,默认的一个颜色了,那对默认的颜色也是根据你的这个控制台的颜色不同而不同,控制台是白的,那默认颜色就是黑的是吧,控制台是黑的,那默认颜色就是白的了,好,然后呢,所以显示我们具体的日志输出的消息,那这个日志输出的消息呢,其实就是比如说刚才我们在这个地方输出的这些内容,这些就是指的是具体的message了啊然后呢,再接下来呢,这个百分号N其实就是一个换行了,因为我每输出一行日志的时候呢,我就希望再重启一行,我不能日志和日志前后都挨着,是不是都在一行里面,那你这样的话可读性就非常差了,所以呢,我们每一行日志输出完要有一个换行啊,用百分号N,所以这个呢,是彩色日志的一个格式。
05:20
然后接下来呢,我们还有就是普通的文件日志。这是文件日志的格式,文件日志的格式呢啊,这个名字和这个名字一样,都是我们自己起的啊,然后接下来呢,这里面啊,很明显就是把上面的这个颜色部分去掉了,Yellow啊,Highlight呀,Green啊,你看都没有了,哎,只是把颜色部去掉了,然后呢,另外呢,还做了一些不同的样式展示哈,这块呢是data,然后这块level啊,然后这块呢,就是还有一个就是所在县城,这个日志是在哪个县城里面输出的,这个是具体的在哪个文件文件名会打印出来啊,然后这个是在这个文件当中的第几行会打印出来啊,然后这个呢,就是具体的这个文件所在的类的类名啊,所以呢,这个其实就是让大家看一下,我们除了呃输出这样的一些基本内容之外呢,还能够把日志所在的具体的行打印出来,在哪一行输出来哈,好,那这块呢,就是我们的一个文件格式日志的,那为什么他没有用颜色呢?因为一般情况下,我们日志文件都输,直接输出在文本文件当中就没有必要。
06:26
给它设置颜色了,它也展示不出来啊,这个颜色好这块呢,是我们文件日志的格式,那也是以变量的形式先定义在这,然后后面呢,我们会去具体的去调用它,然后最后一个呢,就是编码,我们的日志无论是输出在控制台上,还是输出在文本文件当中,最后呢,我们都想给他做一个统一的编码,所以呢,在这个位置呢,我们就给它定义一个编码了啊,定一个编码。好,那这个就是我们定义的一些相当于变量了,那我们怎么用这些变量呢?我们再来看啊,我们看啊,后面有好几个地方会用到这个变量,其中有一个非常重要的节点,就A判节点a panda节点呢,它也是configuration的子节点啊,然后它是干嘛的呢?它是负责去写日志的,我们管这个就叫做啊,就是日志的目标位置啊,然后这个日志的目标位置呢,它有比如说在这个地方我们就定义了一个日志啊,The a panda,然后呢,我们也给它自己起个名字,比如说叫cance,那通过这个名字呢,我们就知道了,我们是想把这个日志呢写在控制台上,好,然后呢,后面这个类呢,在我们的这个log bag里面,它定义了一些固定的实现,那这个实现呢,叫cancel panda,那就说明呢,这个我如果往这个目标位置写日志的话,那么我将会把日志写在控制台上啊,然后接下来呢,这个日志呢,它写成什么格式的呢?
07:56
Pencil log pattern诶,就是上面咱们定义的这个pencil log pattern控制台日志,我要以这个格式来将日志输出在控制台上啊,然后这块呢,插赛是什么?就是编码方式嘛,哎,就是刚才我们在这定义的编码方式,也就是说我要以这种编码方式将我们的日志写在我们的控制台上,好,那所以这个就是我们日志的目标位置是控制台日志的格式,是这个日志的编码方案是这个啊,所以控制台日志呢,我们在这个地方呢,给它写一下,好,这样的话呢,就是我们控制台日志的一个具体的方案,好,所有的这些节点啊,包括它的质量属性啊,不要求大家自己一点点把它写出来,那未来你在项目当中也好,是在自己做案例的时候也好,其实只要有这样的一个参考,你能够知道去改什么就行了啊,比如说我格式输出我要我要改一改,颜色换一换,我位置换一换等等,那你就改这个格式就行,对不对,编码方案我要改,改成DB2。
08:56
212的,那你就改它就行了,对吧,那输出的日志路径我要改,那你就改它就行了,所以就会改就行啊这块,然后接下来呢,再往后看啊,除了控制台日志之外,除了控制台日志之外,我们还可以配文件日志,也就是说这日志呢,除了打印在我们的这种。
09:16
控制台上我们还可以打印在系统文件当中,那我们配一个文件日志。好,我们来看一下这个文件日志,这个a panda的名字也是我们自己定义的,那我们定义一个比较好理解的名字,就叫file哈,好,那这个class呢,就说明我们要把日志写在文件当中,因为它叫file panda,所以它呢会在我们的啊服务器所在的操作系统上创建一个本地文件,好,那我文件创建在什么位置呢?就创建在这个位置,好上面这块呢,就是一个变量的一个使用了,跟上面这块和这块变量使用都是一样的,都用的是Dollar加大括号的形式,用的是哪个变量呢?用的是这个log.pass就是日志的路径对吧?啊用的是这个变量,好这个变量呢,我们具体呢,就定义在这个路径下啊,然后在在这个路径下呢,再创建一个叫log.log的这么一个文件,所以呢,整体呢,我们的日志呢,其实呢,就会被创建在哪啊,被创建在刚才那个路径下面的杠log的log这个文件当中了,好,那这个就是我们的文件日志了,然后接下来呢,在这个里面我们有一个。
10:24
True哈,Panda true true是什么呢?就是。我们每一次啊,去记录日志的时候,都要往这个文件里面去追加日志,而不是重新建一个日志啊好,然后这块呢是encoder encoder的话呢,跟上面这个也是一样的,就是呢,我们是要用日文件日志格式,也就是说上面这个。Fairlo pattern用不带颜色的这种文件日志格式呢来记录这个日志啊,这面,然后同样的也是用UTF杠八的这样的一个编码来记录这个日志,所以呢,这个是我们的控制台日志以及文件日志啊,这样的两个日志。
11:05
好,所以这块呢,是我们所说的啊,Panda啊,这个,那么现在我们回头来看一下,我们现在已经了解到几个节点了,Configuration是根节点,Context name是给这个日志记录器另一个上下文的名字,Property是为我们的啊日志里面需要用到的一些啊,这个。可复用的值呢,定义一些变量,好,然后a panda是记录这个日志的位置,我们要将日志记录在什么地方,叫a panda,那现在呢,我们记录了两个地方,一个呢叫啊can a panda,一个呢叫fair panda,就是在控制台上记和在我们的文件当中记好现在我们万事俱备,只欠东风了,什么东风呢,就是记录日志记录器,我们要定义一下,那日志记录器呢,我们管它叫log,啊log呢,也是considerfiguration的集节点,好,我们先把它复制一下。
12:04
好,这个log作为configuration的子节点呢,我们啊要配置这样几个选项,第一你的这个日志记录器的名字,那一般情况下呢,日志记录器的名字我们都以这个报名的形式去给它定义,为什么以报名呢?因为这个日志记录器的名字实际上就是你日志打印的范围了,比如说现在我这地方呢,叫com.I的硅谷,那我所有在com.I的硅谷包下出现的日志,无论是我们自己写的代码哈,还是我们自己写的代码里嵌套的代码,都会用什么呀,都会用当前我的这个日志记录器呢,去啊去管理啊去管理,好嗯,那也就是说刚才我写的这个代码,他在不在com点艾特硅谷这个包下面呢。他在是不是,所以呢,这个代码呢,就会被我们的日志记录器管理啊,然后呢,这个里面调用的这个包里面的这个代码,比如说类似里面它又调用了这个就这些东西,这些东西它会不会被我们的日记器管理呢?也会为什么?因为他也不在com艾特硅谷包下呀,但是它的调用它是被com艾特硅谷调用了,所以呢,也会被我们的这个日志记录器管理啊好,那这样的话呢,我们就直接写一个看的硅谷就管理了我们整个这个项目下面的所有地方的所有的日志,然后接下来呢,在这个位置我们就写一个。
13:30
Info是吧?这info是什么呢?就是我呢想啊定义我的这个日志呢为info级别啊,然后呢,A panda right是什么意思呢?就是我这日志记录器呢,要往把这个日志往两个地方记录,一个呢是往cancel里记录,一个是往file里记录,就是个re re肯定是一个引用了,这个castle和file呢,是我们定义的一个日志目标位置的一个引用,那开呢指的就是它,所以这两个名字是对应的啊,它引用的就是这个日志记录的目标位置,然后fair呢,引用的就是它啊,它引用的就是这个fair panda那a panda这个目标位置,所以我们现在用这个日志记录器来制记录日志的时候呢,那么可以同时往两个地方去输出日志了,好,所以这块呢,就是我们所说的日志记录器了,那接下来呢,我们来测试一下。
14:33
好,接下来呢,我们来看一看啊,啊在咱们这个系统当中呢,大家看啊,首先这个ino是我们启动的时候,系统当中的一些其他的位置,比如说service,靠application对吧,启动程序啊,然后它内部啊,所调用的方法啊什么的记录的日志啊,还包括这款也是我们的service comp这个启动程序里面帮我们记录的日志,好然后接下来呢,我们再访问一下刚才我们的这个。
15:03
类似的方法,我们ice cut一下,好这方法访问好了,访问好了之后呢,我们来看一下后面这块是不是记录了我们自己在我们的应用程序当中打印的日志啊,因为我们定义的是info级别,所以info以及info以上级别的日志呢,就都被打印出来了啊,包括info log ino log one以及log arrow啊,都是我们自己写的日志,好所以这块呢,就是我们针对日志记录器的一个使用了,那么我们刚才看到的呢,是pencil,也就是控制台的里面的日志哈,并且呢,你看到的这个控制台里面的日志呢,还有颜色,你看就根据刚才我们所定义的这个控制台日志的这个颜色,还有输出的格式,首先呢是黄色的日期,对吧?啊,然后接下来呢,是一个占五个字符宽度的一个级别,占五个字符宽度的级别啊,所以你看它即使它们的这个字符的数量不一样,像one in four都是四个字符,Arrow是五个字符,但是它们最终呢,都是对齐的啊,都对齐的好,然后接下来呢,是。
16:04
文件日指证的啊,这是这是这是颜色就是级别,然后这个级别呢,是高亮的,在我们这个浅色的背景的idea当中的高亮就是这个蓝色了啊,商务蓝是吧,然后还有呢,就是呃,不同的这个级别也有不同的高亮颜色,比如说info就是商务蓝望就是这应该是橙色吧,看不太清啊,然后这个是AR是红色对吧?啊,所以这个是不同级别有不同的高亮显示,然后接下来呢,这个。啊,这个这个log log就绿色在这呢,显示日志记录器的名字,那刚才我说到了具体的日志记录器的名字呢,就是还要看你这个日志是在哪个类里面打印出来,在哪个类里面,它呢就会展示哪个类的全类全名,完全限定名啊然后接下来呢,就是message message就是刚才咱们输出的这个具体的日志的内容了,然后这再接下来呢,就是一个换行哈,换行然后再输出第二个日志,所以这块呢,说的就是控制台日志的一个格式了,那接下来呢,我们刚才这个日志呢,还还输出了一个对面还输出了到文件当中了,对不对,所以我们要参考这个文件,它所用的这个啊日志格式,那么这个日志格式呢,是在这个地方定义的,那我们来找一下文件。
17:25
好,文件里面呢,我们是在这个录下啊,应该是写的票录下,然后呢,0921,然后接下来呢,就有个S2LO号loglo,这是刚才我们刚刚输出的日志啊好,然后接下来呢,我们右键打开一下,右键打开。来看一眼好,看一眼的话,你就会发现这里面有in for是吧,有one,有error啊,你看都打印在这里面了,而且呢,格式也是按照我们的预预先定义的格式的,这个是时间,这是级别啊,然这个是所在的线程啊,然后这个呢,是所在的文件,就所在的文件,然后是冒号在这个文件的第42行输出的。
18:06
然后接下来呢,就是这个日志记录器的名字,也是这个日志所在的类的类的完全限定名。然后接下来呢,就是这个日志,呃,Message具体的日志内容,然后换行是吧,这个呢,就是咱们的文件日志了啊,那文件日志有什么好处啊,因为一般情况下在开发环境当中体现出来它的优势,生产环境当中啊,我们没有人去盯着控制台日志,就一直看你有什么问题,控制台日志呢,它所能显示的日志的数量是有限的,当达到达到一定规模的时候呢,它就滚平了啊,你前面的日志太早的日志就看不见了,所以说为了保留这个历史日志,我们呢,都会在生产环境下把日志呢,就是这呢啊,在生产环境下我们呢会把日志呢。呃,存到文件当中啊,存到这个磁盘当中的文件当中,这样的话呢,方便后期一旦出现什么问题的时候,我们可以去参考这个日志啊,所以说呢,这个是简单的一个日志配置。
我来说两句