在java项目中使用Log4j -2-Logger

       Logger是log4j操作的核心对象,Logger的Name是区分大小写的,而且支持层级命名规则,类似于Java类的定义,通过命名空间来区别。

       Logger的等级制度

      如果1个Logger的name前缀是.及祖辈的Logger的name,那么就说1个Logger是另1个Logger的祖先。类似地,"java"是"java.util"这个Logger的父亲,是"java.util.Vector"这个Logger的祖先。这种命名模式与很多开发语言非常相似。

      Root Logger位于Logger最高层级,也就是说,它是所有Logger的祖先。它有2个特别的地方:

      1)、它总是存在;
      2)、不能用name来获取它;

     调用类的静态方法Logger.getRootLogger可以获取Root Logger。所有其他的Loggers都是调用类的静态方法Logger.getLogger来实例化的。Logger.getLogger需要传入要创建的Logger 的name作为参数。Logger类的一些基本的方法如下:

package org.apache.log4j;

  public class Logger {

    // Creation & retrieval methods:
    public static Logger getRootLogger();
    public static Logger getLogger(String name);

    // printing methods:
    public void trace(Object message);
    public void debug(Object message);
    public void info(Object message);
    public void warn(Object message);
    public void error(Object message);
    public void fatal(Object message);

    // generic printing method:
    public void log(Level l, Object message);
}
       你也可以给Logger被指定1个级别,可选的级别有:TRACE,  DEBUG,  INFO,  WARN,  ERROR ,  FATAL。这些可选的级别都定义在org.apache.log4j.Level类中。

       如果给定的Logger没有指定level,那么它会从最亲近的父辈中继承level。为了确保所有的Logger都能继承到level,所以root Logger总是有1个level。下面例子给出关于level继续的具体说明。

例子1:3个都没有指定level,所以都使用root的level。

Logger Name

指定的level

最终的level

root

Proot

Proot

X

none

Proot

X.Y

none

Proot

X.Y.Z

none

Proot

例子2:3个都各自指定了level,所以都使用自己的level。

Logger Name

指定的level

最终的level

root

Proot

Proot

X

Px

Px

X.Y

Pxy

Pxy

X.Y.Z

Pxyz

Pxyz

例子3:X.Y没有指定level,所以它继承最近的父辈X的level。

Logger Name

指定的level

最终的level

root

Proot

Proot

X

Px

Px

X.Y

none

Px

X.Y.Z

Pxyz

Pxyz

例子4:

Logger Name

指定的level

最终的level

root

Proot

Proot

X

Px

Px

X.Y

none

Px

X.Y.Z

none

Px




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值