我正在使用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")
时的实际行,我不知道如何解决它。有什么建议吗?
答案 0 :(得分:1)
您不应该为记录器本身添加功能。而是实现您的自定义(甚至配置一个现有布局)。