2012-03-26 33 views
1

我正在使用log4j來記錄我的程序日誌。該代碼是這樣的:向某個庫的類對象添加方法

static Logger logger = Logger.getLogger(MyClassName.class); 
logger.error("This is error message"); 

然而,而是採用error(),我要實現我自己的錯誤方法,添加一些額外的信息,例如

logger.searcherror("This is error message")  
void searcherror(String mes){ 
    logger.error("[search] "+mes) 
} 

我實現了這個用代理模式:

class Mylogger{ 
    private Logger logger = null; 
    public MyLogger (Logger logger){ 
     this.logger = logger; 
    } 
    public void searcherror(String msg){ 
     logger.error("[search]"+msg); 
    } 
} 

使用MyLogger當我通過設置appender layout: %l,還告訴我這個日誌的行號打印日誌時,有是一個錯誤。這將在MyLogger中打印searcherror()方法的行號,而不是當我撥打Mylogger.serach("xxxxx")時的實際行,我不怎麼解決它。有什麼建議麼?

回答