logger日志系统的简单介绍

常用日志框架: 

常用的日志框架简要介绍
JUL(java.util.logging.Logger)
  • 系统自带
  • 功能不够强大
Apache Commons Logging
  • 由Apache提供的一个通用日志API
  • 在程序运行时,通过动态机制自动找到日志库
Log4j
  • 主要组成部分:
    • Logger(日志记录器):控制日志的输出级别与是否输出日志
    • Appender(输出端):指定日志的输出地点
    • Layout(日志格式化器):控制日志信息的输出格式
  • 7种log级别:(从低到高)TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF
  • 支持两种格式的配置文件:properties和XML
Logback
  • 是Log4j的升级版
  • 分成3个模块:
    • logback-core
    • logback-classic
    • logback-access
Log4j2
  • 是Log4j和Logback的升级版
SLF4J
  • 是对所有日志框架制定的一种规范、标准和接口,不是具体的框架
  • 需要和诸如上面的具体框架配合使用
  • 多为SLF4J+Logback或SLF4J+Log4j2组合使用

 日志级别:(输出当前级别以及更高级别的日志信息)

日志级别描述
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类用来记录某个级别的日志消息

二、 日志消息的级别

(从上往下,级别依次降低,只有显示比当前级别高的日志消息)

  1. SEVERE        严重信息
  2. WARNING        警告信息
  3. INFO(默认级别)      一般信息
  4. CONFIG      设定方面的信息
  5. FINE         细微的信息
  6. FINER     更细微的信息
  7. FINEST         最细微的信息

级别补充:

  • OFF:用来关闭日志
  • ALL:用来启用所有消息的日志记录

三、Logger是如何记录日志的?

Logger记录的日志消息会被转发到已注册的Handler对象,Handler对象可以将消息发送到:控制台,文件,网络等等。

Handler类
MemoryHandler类StreamHandler类

SimpleFormatter类:

为日志信息做纯文本形式格式化处理

XmlFormatter类:

为日志信息做XML形式格式化处理

ConsoleHandler类:

将日志消息打印到控制台

FileHandler类:

  • 将日志消息输出到文件
  • 默认格式是XMLFormatter

SocketHandler类:

  • 将日志发送到网络中的某个主机
  • 默认格式是SimpleFormatter

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);//打印严重错误信息,通常用于处理导致程序崩溃的错误。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部