日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

java自定义日志级别_自定义log4j日志级别

發(fā)布時(shí)間:2025/4/16 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java自定义日志级别_自定义log4j日志级别 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

因?yàn)轫?xiàng)目中需要輸出一些特別的日志來做數(shù)據(jù)統(tǒng)計(jì)。如果開啟log4j提供的INFO日志級(jí)別,每天生成的日志文件就會(huì)變得越來越大。這樣就得寫個(gè)定

時(shí)任務(wù)來刪除這個(gè)文件。為了只輸出所需的日志級(jí)別,唯有自己定義一個(gè)log4j的級(jí)別,這樣一來就好控制了,而且不需要對(duì)之前的代碼進(jìn)行修改。好了,廢話

不多說,上代碼:

1、CustomerLog

package?common.log;

import?org.apache.log4j.Level;

import?org.apache.log4j.Logger;

import?org.apache.log4j.net.SyslogAppender;

public?class?CustomerLog?{

/**

*?繼承Level

*?@author?Sevencm

*

*/

private?static?class?CustomerLogLevel?extends?Level{

public?CustomerLogLevel(int?level,?String?levelStr,?int?syslogEquivalent)?{

super(level,?levelStr,?syslogEquivalent);

}

}

/**

*?自定義級(jí)別名稱,以及級(jí)別范圍

*/

private?static?final?Level?CustomerLevel?=?new?CustomerLogLevel(20050,"CUSTOMER",SyslogAppender.LOG_LOCAL0);

/**

*?使用日志打印logger中的log方法

*

*?@param?logger

*?@param?objLogInfo

*/

public?static?void?customerLog(Logger?logger,Object?objLogInfo){

logger.log(CustomerLevel,?objLogInfo);

}

}

2、Log Filter

package?common.log;

import?org.apache.log4j.spi.Filter;

import?org.apache.log4j.spi.LoggingEvent;

public?class?CustomerLogFilter?extends?Filter?{

boolean?acceptOnMatch?=?false;

private?String?levelMin;

private?String?levelMax;

public?String?getLevelMin()?{

return?levelMin;

}

public?void?setLevelMin(String?levelMin)?{

this.levelMin?=?levelMin;

}

public?String?getLevelMax()?{

return?levelMax;

}

public?void?setLevelMax(String?levelMax)?{

this.levelMax?=?levelMax;

}

public?boolean?isAcceptOnMatch()?{

return?acceptOnMatch;

}

public?void?setAcceptOnMatch(boolean?acceptOnMatch)?{

this.acceptOnMatch?=?acceptOnMatch;

}

@Override

public?int?decide(LoggingEvent?lgEvent)?{

int?inputLevel?=?lgEvent.getLevel().toInt();

if(inputLevel>=getLevel(levelMin)?&&?inputLevel?<=?getLevel(levelMax)){

return?0;

}

return?-1;

}

private?int?getLevel(String?level){

level?=?level.toUpperCase();

if(level.equals("CUSTOMER")){

return?LevelType.CUSTOMER.getType();

}

if(level.equals("OFF")){

return?LevelType.OFF.getType();

}

if(level.equals("FATAL")){

return?LevelType.FATAL.getType();

}

if(level.equals("ERROR")){

return?LevelType.ERROR.getType();

}

if(level.equals("INFO")){

return?LevelType.INFO.getType();

}

if(level.equals("WARN")){

return?LevelType.WARN.getType();

}

if(level.equals("DEBUG")){

return?LevelType.DEBUG.getType();

}

if(level.equals("ALL")){

return?LevelType.ALL.getType();

}

return?LevelType.OFF.getType();

}

private?static?enum?LevelType{

OFF(2147483647),

FATAL(50000),

ERROR(40000),

WARN(30000),

INFO(20000),

DEBUG(10000),

ALL(-2147483648),

CUSTOMER(20050);

int?type;

public?int?getType()?{

return?type;

}

private?LevelType(int?type)?{

this.type?=?type;

}

}

}

3、配置文件的設(shè)置:

log4j:configuration?SYSTEM?"log4j.dtd">

4、測(cè)試類

package?common.test;

import?org.apache.log4j.Logger;

import?common.log.CustomerLog;

public?class?Test?{

private?static?final?Logger?logger?=?Logger.getLogger("customer");

public?static?void?main(String[]?args)?{

CustomerLog.customerLog(logger,?"自定義日志級(jí)別");

logger.info("哈哈哈哈");

}

}

5、運(yùn)行結(jié)果:

2014-05-24 17:22:45,647 [CUSTOMER] customer - 自定義日志級(jí)別

2014-05-24 17:22:45,648 [INFO] customer - 哈哈哈哈

6、通過修改

上面的 Value 值來控制日志的輸出級(jí)別。

另外說明常用log4j日志級(jí)別具體值:

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);

}

像FATAL、ERROR這些級(jí)別,實(shí)際上對(duì)應(yīng)一數(shù)字50000、40000

總結(jié)

以上是生活随笔為你收集整理的java自定义日志级别_自定义log4j日志级别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。