实现JAVA logging模块将日志打印到文件
1. 整体流程
为了实现JAVA logging模块将日志打印到文件,我们需要完成以下几个步骤:
步骤 | 描述 |
---|---|
1 | 创建Logger对象 |
2 | 配置Logger对象 |
3 | 创建并配置Handler对象 |
4 | 将Handler对象添加到Logger对象 |
5 | 记录日志 |
接下来,我们将详细介绍每个步骤需要做的事情,并提供相应的代码示例。
2. 创建Logger对象
首先,我们需要创建一个Logger对象来记录日志。Logger对象是logging模块的核心对象,用于在代码中记录各种级别的日志信息。
import java.util.logging.Logger;
Logger logger = Logger.getLogger("MyLogger");
代码解释:
import java.util.logging.Logger;
导入Logger类所在的包。Logger.getLogger("MyLogger");
使用Logger类的静态方法getLogger()
创建一个名为"MyLogger"的Logger对象。
3. 配置Logger对象
配置Logger对象可以设置日志的输出格式、记录级别等属性。
import java.util.logging.ConsoleHandler;
import java.util.logging.FileHandler;
import java.util.logging.Level;
import java.util.logging.SimpleFormatter;
logger.setLevel(Level.ALL);
代码解释:
import java.util.logging.ConsoleHandler;
导入ConsoleHandler类所在的包,用于控制台输出日志。import java.util.logging.FileHandler;
导入FileHandler类所在的包,用于将日志输出到文件。import java.util.logging.Level;
导入Level类所在的包,用于设置日志记录级别。import java.util.logging.SimpleFormatter;
导入SimpleFormatter类所在的包,用于设置日志的输出格式。logger.setLevel(Level.ALL);
设置Logger对象的记录级别为Level.ALL
,即记录所有级别的日志信息。
4. 创建并配置Handler对象
Handler对象用于将日志输出到指定的目的地,如控制台、文件等。我们需要创建一个FileHandler对象,并将其配置为输出日志到文件。
FileHandler fileHandler = new FileHandler("log.txt");
fileHandler.setFormatter(new SimpleFormatter());
logger.addHandler(fileHandler);
代码解释:
FileHandler fileHandler = new FileHandler("log.txt");
创建一个FileHandler对象,指定日志输出到名为"log.txt"的文件。fileHandler.setFormatter(new SimpleFormatter());
设置FileHandler对象的输出格式为SimpleFormatter,即简单的文本格式。logger.addHandler(fileHandler);
将FileHandler对象添加到Logger对象。
5. 记录日志
最后,我们可以使用Logger对象的不同方法记录不同级别的日志信息。
logger.severe("This is a severe message.");
logger.warning("This is a warning message.");
logger.info("This is an info message.");
logger.config("This is a config message.");
logger.fine("This is a fine message.");
logger.finer("This is a finer message.");
logger.finest("This is the finest message.");
代码解释:
logger.severe("This is a severe message.");
记录一个严重级别的日志信息。logger.warning("This is a warning message.");
记录一个警告级别的日志信息。logger.info("This is an info message.");
记录一个信息级别的日志信息。logger.config("This is a config message.");
记录一个配置级别的日志信息。logger.fine("This is a fine message.");
记录一个细微级别的日志信息。logger.finer("This is a finer message.");
记录一个更细微级别的日志信息。logger.finest("This is the finest message.");
记录一个最细微级别的日志信息。
类图
classDiagram
class Logger
class Handler
class FileHandler
class ConsoleHandler
class Level
class SimpleFormatter
Logger --> Handler
Logger --> Level
Handler <|-- FileHandler
Handler <|-- ConsoleHandler
Handler ..> SimpleFormatter
饼状图
pie
title Java Logging 模块使用情况
"Severe" : 10
"Warning" : 20
"Info" : 30
"Config" : 10
"Fine" : 15