日志
1. 日志架构
日志一般构建在三个主要的类分为Logger、Appender、Layouts,再加一个过滤器Filters
三者之间的关系:
-
Logger (日志记录器)
被称为记录器,应用程序通过获取Logger对象,调用其API来来发布日志信息。Logger 通常时应用程序访问日志系统的入口程序。
Logger可以通过一下两个方法获取,
//JUL为例 //直接获取日志记录器 Logger logger = Logger.getLogger(String.valueOf(getClass())); //根据日志记录器工厂获取Logger Logger logger = LoggerFactory.getLogger(getClass());
-
Appender (日志输出目的地)
也被称为 Handlers (处理器),每个Logger都会关联一组Handlers,Logger会将日志交给关联 Handlers处理,由Handlers负责将日志做记录。Handlers在此是一个抽象,其具体的实现决定了 日志记录的位置可以是控制台、文件、网络上的其他日志服务或操作系统日志等。
Appender的类别有:Console(控制台)、File(文件)、JDBC(数据库)、JMS等等。
//JUL为例 //关闭系统默认配置 logger.setUseParentHandlers(false); //把日志输出到控制台 // a. 创建handler处理对象 ConsoleHandler consoleHandler = new ConsoleHandler(); // b. 设置日志输出位置 logger.addHandler(consoleHandler); //把日志输出到文件 // a. 创建handler对象 FileHandler fileHandler = new FileHandler("D:\\test.log"); // b. 设置日志输出位置 logger.addHandler(fileHandler); // e. 设置日志级别 logger.setLevel(Level.ALL); consoleHandler.setLevel(Level.ALL);