将方法添加到某个库的类对象

时间:2012-03-26 13:40:14

标签: java log4j

我正在使用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时出现错误,它告诉我此日志的行号。这将在searcherror()中打印MyLogger方法的行号,而不是我拨打Mylogger.serach("xxxxx")时的实际行,我不知道如何解决它。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您不应该为记录器本身添加功能。而是实现您的自定义(甚至配置一个现有布局)。

查看此文档:http://logging.apache.org/log4j/1.2/manual.html