log4j 自定义级别

要自定义一个级别,首先我们先来看一下log4j level类的源码:

public class Level extends Priority
  implements Serializable
{
  public static final int TRACE_INT = 5000;
  public static final Level OFF = new Level(2147483647, "OFF", 0);

  public static final Level FATAL = new Level(50000, "FATAL", 0);

  public static final Level ERROR = new Level(40000, "ERROR", 3);

  public static final Level WARN = new Level(30000, "WARN", 4);

  public static final Level INFO = new Level(20000, "INFO", 6);

  public static final Level DEBUG = new Level(10000, "DEBUG", 7);

  public static final Level TRACE = new Level(5000, "TRACE", 7);

}

 

从上面可看出, 数值越大,这个级别也就越高。

如:我们现在定义一个级别在 warn和 error 之间。数值定位:30050。

 

已下是整个类的代码:

public class MailLog {

private static Logger logger = Logger.getLogger(MailLog.class);


private static class SeriousLevel extends Level {

private static final long serialVersionUID = 1076913470822079835L;


private SeriousLevel(int level, String name, int sysLogLevel) {

super(level, name, sysLogLevel);

}

}


private static final Level MAIL_LOG_LEVEL = new SeriousLevel(30050,

"SERIOUS", SyslogAppender.LOG_LOCAL0);


public static void mailLog(Object pm_objLogInfo) {

logger.log(MAIL_LOG_LEVEL, pm_objLogInfo);

logger.debug(pm_objLogInfo);

logger.info(pm_objLogInfo);

}

public static void main(String[] args) {

MailLog log = new MailLog();

log.mailLog("serious ****** ");

}

}

------------------------------ log4j.xml ---------------------------------

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE log4j:configuration SYSTEM "../WebRoot/WEB-INF/config/log4j/log4j.dtd">

<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>

<appender name="LOG.EMAIL" class="org.apache.log4j.RollingFileAppender">

<param name="File" value="logs/EMAIL_LOG.log" />

<param name="Append" value="true"/>

<param name="MaxFileSize" value="5120KB" />

<param name="MaxBackupIndex" value="10" />

<layout class="org.apache.log4j.PatternLayout">

<param name="ConversionPattern" value="%d{yyy-MM-dd HH:mm:ss} [%-5p] %c {%F:%L} - %m%n" />

</layout>

<filter class="org.apache.log4j.varia.LevelRangeFilter">

<param name="LevelMin" value="info" />

</filter>

</appender>


<root>

<appender-ref ref="LOG.EMAIL" />

</root>

</log4j:configuration>

 

----------------------------------- 结果 -----------------------------------------

 

12-10-08 14:55:51 [SERIOUS] other.log4j.self.MailLog {MailLog.java:28} - serious ****** 

12-10-08 14:55:51 [INFO ] other.log4j.self.MailLog {MailLog.java:30} - serious ****** 

12-10-08 14:55:51 [WARN ] other.log4j.self.MailLog {MailLog.java:31} - serious ****** 

12-10-08 14:55:51 [ERROR] other.log4j.self.MailLog {MailLog.java:32} - serious ****** 

 

--------------------------------------------------------------

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值