tomcat源码阅读之日志记录器(Logger)

Posted beggar_1982

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tomcat源码阅读之日志记录器(Logger)相关的知识,希望对你有一定的参考价值。

UML图:

 

1、Logger接口中定义了日志的级别:FATAL、ERROR、WARNING、INFORMATION、DEBUG,通过接口函数getVerbosity获取日志级别,setVerbosity设置日志级别;

2、接口中提供一组重载的log方法来记录日志,在LoggerBase实现类中除了log(String msg)方法没有实现外,其他重载的log方法均实现为调用这个方法来实现日志的记录;

3、在LoggerBase类中,默认的日志级别是ERROR;带日志级别参数的log方法在记录日志时,如果参数的日志级别的数字比该日志记录器实例中设定的等级低,才会记录该消息,否则,会忽略该条记录。代码如下:

4、FileLogger日志记录器为将日志输出到文件中;SystemErrLogger和SystemOutLogger均为在控制台上输出日志,区别只是一个输出错误信息日志,一个输出正常日志信息,代码如下:

      

FileLogger的实现:

1、日志文件默认记录到logs文件夹下,扩展名默认为.log,并且文件名带有日期前缀,在每次记录日志时,会拿系统当前日期和日志记录日期做比较,如果不相同则关闭当前日志文件并重新创建新的日志文件,代码如下:

可以看到在日期发生改变时,更新date变量,并调用open方法创建新的日志文件;

2、open方法首先检查要创建的日志文件所在的目录是否存在,如果不存在则创建,然后根据prefix、date、suffix三个变量生成新的日志文件名并创建新的日志文件;最后通过FileWritter把信息写入到文件中;代码如下:

 

以上是关于tomcat源码阅读之日志记录器(Logger)的主要内容,如果未能解决你的问题,请参考以下文章

从零开始手写Tomcat的教程7节---日志记录器

how tomcat works读书笔记 七 日志记录器

日志框架之Java原生日志框架JUL

Java日志系统---Logger之简单入门

Django之logging日志使用

python日志之logging模块--理解