logger日志系统的简单介绍
常用日志框架:
| 常用的日志框架 | 简要介绍 |
| JUL(java.util.logging.Logger) |
|
| Apache Commons Logging |
|
| Log4j |
|
| Logback |
|
| Log4j2 |
|
| SLF4J |
|
日志级别:(输出当前级别以及更高级别的日志信息)
| 日志级别 | 描述 |
| OFF | 关闭:不输出日志 |
| FATAL | 致命:输出可能会导致应用程序终止(崩溃)的错误 |
| ERROR | 错误:输出程序的错误(不会导致程序崩溃的错误) |
| WARN | 警告:提示可能出现的问题 |
| INFO | 信息:输出应用运行过程的详细信息 |
| DEBUG | 调试:输出对调试有用的信息 |
| TRACE | 跟踪:输出程序的运行轨迹 |
| ALL | 所有:输出所有级别的信息 |
日志格式变量:
| 日志格式变量 | 描述 |
| %level | 输出日志的级别 |
| %date 或 %d | 日志发生的时间 |
| %logger | 输出Logger的类路径,包名+类名 {n}限定了输出长度 |
| %thread | 当前线程名 |
| %M | 日志发生时的方法名 |
| %L | 日志调用代码所在行 (可能对性能有消耗) |
| %m | 日志消息 |
| %n | 换行 |
一、简单介绍
什么是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);//打印严重错误信息,通常用于处理导致程序崩溃的错误。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
