一、简单介绍
什么是logger?
- logger是JDK自带的日志工具类。
- 在 java.util.logging 包下。
logger的作用?
- Logger类用来记录某个级别的日志消息
二、 日志消息的级别
(从上往下,级别依次降低,只有显示比当前级别高的日志消息)
- SEVERE 严重信息
- WARNING 警告信息
- INFO(默认级别) 一般信息
- CONFIG 设定方面的信息
- FINE 细微的信息
- FINER 更细微的信息
- FINEST 最细微的信息
级别补充:
- OFF:用来关闭日志
- ALL:用来启用所有消息的日志记录
三、Logger是如何记录日志的?
Logger记录的日志消息会被转发到已注册的Handler对象,Handler对象可以将消息发送到:控制台,文件,网络等等。
Handler类 | ||||
MemoryHandler类 | StreamHandler类 | |||
SimpleFormatter类: 为日志信息做纯文本形式格式化处理 | XmlFormatter类: 为日志信息做XML形式格式化处理 | ConsoleHandler类: 将日志消息打印到控制台 | FileHandler类:
| SocketHandler类:
|
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.");//为处理器设置日志格式:FormatterSimpleFormatter sf = new SimpleFormatter();fileHandler.setFormatter(sf);//注册处理器logger.addHandler(fileHandler);//记录日志消息logger.log(lr);}}
四、简单用法
static Logger getLogger(String name);
//查找或创建一个logger。同一个名称的Logger只能创建一个
static Logger getLogger(String name, String resourceBundleName);
//为指定子系统查找或创建一个logger。//调试日志,使用指定类初始化日志对象,在日志输出的时候,可以打印出日志信息所在类
private final static Logger logger = LoggerFactory.getLogger(xxxController.class);logger.setLevel(Level level);//设置logger的日志级别//msg:字符串参数,表示要记录的日志消息
//*args:可变数量的位置参数
//**kwargs:可变数量的关键字参数
logger.debug(msg, *args, **kwargs);//打印调试信息,通常用于诊断问题。
logger.info(msg, *args, **kwargs);//打印一般信息,通常用于输出程序运行状态。
logger.warning(msg, *args, **kwargs);//打印警告信息,通常用于处理非致命错误。
logger.error(msg, *args, **kwargs);//打印错误信息,通常用于处理致命错误。
logger.critical(msg, *args, **kwargs);//打印严重错误信息,通常用于处理导致程序崩溃的错误。