Log4j 学习笔记

本文详细介绍了Log4j的核心概念,包括Logger、Appender和Layout,讲解了各种输出方法、日志级别、配置方式,并提供了示例代码。Log4j的配置可通过XML文件实现,包括ConsoleAppender、FileAppender和RollingFileAppender等。通过正确配置和使用,可以有效地管理和记录应用日志。
摘要由CSDN通过智能技术生成
 Index

  1. Log4j的类图
  2. Logger:日志写出器
      1. Logger的输出方法
      2. Logger的命名规则
      3. Log level
      4. 示例代码
      5. 关于 logger的两点说明
  3. Appender:日志目的地
      1. ConsoleAppender
      2. FileAppender
      3. RollingFileAppender
  4. Layout:日志格式化器
      1. PatternLayout
      2. patterns in PatternLayout
  5. Configuration:配置
      1. 默认的log4j初始化过程
      2. BasicConfigurator.configure()
      3. xml格式的log4j配置文件概述
      4. 在xml文件中配置appender和layout
      5. 我自己的一个使用xml文件配置log4j环境的很简单的例子
  6. Log4j的编码习惯
  7. 参考资料


Log4j的类图

  1. Logger - 日志写出器,供程序员输出日志信息
  2. Appender - 日志目的地,把格式化好的日志信息输出到指定的地方去
      1. ConsoleAppender - 目的地为控制台的Appender
      2. FileAppender - 目的地为文件的Appender
      3. RollingFileAppender - 目的地为大小受限的文件的Appender
  3. Layout - 日志格式化器,用来把程序员的logging request格式化成字符串
      1. PatternLayout - 用指定的pattern格式化logging request的Layout


Logger:日志写出器

Logger对象是用来取代System.out或者System.err的日志写出器,用来供程序员输出日志信息。
Logger的输出方法

Logger类对象提供一系列方法供程序员输出日志信息。

   

    ------ Log4j APIs : class Logger ------
   
   
   
    // Printing methods :
   
    public void debug(Object msg);
    public void debug(Object msg, Throwable t);
   
    public void info(Object msg);
    public void info(Object msg, Throwable t);
   
    public void warn(Object msg);
    public void warn(Object msg, Throwable t);
   
    public void error(Object msg);
    public void error(Object msg, Throwable t);
   
    public void fatal(Object msg);
    public void fatal(Object msg, Throwable t);
   
    // Generic printing method :
   
    public void log(Level l, Object msg);
   


Logger的命名规则

Logger由一个String类的名字识别, logger的名字是大小写敏感的,且名字之间具有继承的关系,子名有父名作为前缀,用点号.分隔。如:x.y是x.y.z的父亲。

logger (root logger)是所有 logger的祖先,它具有如下属性:1) 它总是存在的;2) 它不可以通过名字获得。

通过调用public static Logger Logger.getRootLogger()获得root logger;通过调用public static Logger Logger.getLogger(String name)或者public static Logger Logger.getLogger(Class clazz)获得(或者创建)一个named logger。后者相当于调用 Logger.getLogger(clazz.getName())。

在某对象中,用该对象所属的类为参数,调用 Logger.getLogger(Class clazz)以获得 logger被认为是目前所知的最理智的命名 logger的方法。

Log level

每个 logger都被分配了一个日志级别 (log level),用来控制日志信息的输出。未被分配level的 logger将继承它最近的父 logger的level。

每条输出到 logger的日志请求(logging request)也都有一个level,如果该request的level大于等于该 logger的level,则该request将被处理(称为enabled);否则该request将被忽略。故可得知:

  1. logger的level越低,表示该 logger越详细
  2. logging request的level越高,表示该logging request越优先输出

Level类中预定义了五个level,它们的大小关系如下:

    Level.ALL < Level.DEBUG < Level.INFO < Level.WARN < Level.ERROR < Level.FATAL < Level.OFF
   


示例代码

以下代码将用自己所属的类为参数,创建一个 logger,启用默认配置,设置其level并向其输出若干logging request。

import org.apache.log4j. Logger;
import org.apache.log4j.Basic
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值