《转载于--https://www.cnblogs.com/yorickLi/p/6158405.html》
Java中关于日志系统的API,在 java.util.logging 包中,在这个包中,Logger类很重要。
Logger类是用来记录 某个级别的日志消息:
级别共分为以下几类,从上倒下,级别依次下降:
SEVERE(严重)------级别最高
WARNING(警告)
INFO
CONFIG
FINE
FINER
FINEST------最低值
另外,还有一个级别 OFF,可以用来关闭日志;使用级别 ALL,启用所有消息的日志记录。(日志消息级别,可以查看 java.util.logging.Level类)
具体记录日志的方法,查看此类的API文档,在此就不详述了。
Logger记录的日志消息会被转发到已注册的Handler对象,handler对象可以将消息发送到:控制台,文件,网络等等。
Handler类(抽象类):主要用于转发日志消息
Hanlder类下有2个子类:MemoryHandler、StreamHandler。
StreamHandler下有3个子类:ConsoleHandler(将日志消息打印到控制台)、FileHandler(将日志消息输出到文件)、SocketHandler(将日志发送到网络中的某个主机)。具体详情,查看API文档。
Formatter类(抽象类):主要用于格式化日志记录消息。
有2个子类:SimpleFormatter(纯文本形式), XmlFormatter(XML形式)
下面一起来写一个测试程序吧:
/**
* DateAndTime: 2016-12-8下午10:37:18
*/
package chapter07;
import java.io.IOException;
import java.util.logging.FileHandler;
import java.util.logging.Logger;
/**
* @author Administrator
* 将日志记录写入到文件中
*
*/
public class TestLoggingToFile {
public static void main(String[] args) throws SecurityException, IOException {
//日志记录器
Logger logger = Logger.getLogger("chapter07");
//日志处理器
FileHandler fileHandler = new FileHandler("d:\test.txt");
//需要记录的日志消息
LogRecord lr = new LogRecord(Level.INFO, "This is a text log.");
//为处理器设置日志格式:Formatter
SimpleFormatter sf = new SimpleFormatter();
fileHandler.setFormatter(sf);
//注册处理器
logger.addHandler(fileHandler);
//记录日志消息
logger.log(lr);
}
}
当然,如果把 SimpleFormatter 改成 XmlFormatter,记录的消息是xml形式。