使用java / java EE应用程序中的log4j记录组件

时间:2011-12-19 07:34:32

标签: log4j

我正在尝试使用log4j来构建应用程序级别(java / java ee)日志记录的组件。我可以创建组件的jar并将其放在任何应用程序的类路径中并使用它。我遵循以下方法

  1. 我覆盖了调试,跟踪,信息等日志方法。

  2. 单个和多个参数替换例如MessageFormatter.format("Hi {}. My name is {}.", "Alice", "Bob");将返回字符串“嗨Alice。我的名字是Bob。”

  3. 例如说跟踪消息

    public boolean isTraceEnabled() {  return logger.isTraceEnabled();}
    
    public void trace(String msg, Throwable throwable, Object... args) {
        log(isTraceEnabled(),throwable,msg,args);//
    }
    
    private void log(boolean isEnabled, Throwable throwable, String msg,Object... args)
    {
    
        if(throwable!=null){
            String message=MessageFormatter.getFormattedMessage(throwable);//Formated the exception message 
            msg=msg+message;
            throwable=null;
        }
    
          if (args == null || args.length == 0) {
                logger.log(FQCN,LEVELmsg, throwable);
            } else {
                if (isEnabled) {
                    String formattedMsg = MessageFormatter.arrayFormat(msg, args);//single and multiple argument substutution 
                    logger.log(FQCN, UtilConstant. Level.TRACEformattedMsg, throwable);
                }
            }
    }
    
  4. 我的目标是构建可以满足所有Java EE应用程序的组件。这两种方法是否足够,或者我需要做更多的事情。请帮忙。

1 个答案:

答案 0 :(得分:3)

在我看来,你正在重新发明轮子。查看SLF4J,它可以执行您要实现的目标,并且它可以保护您免受基础消息传递系统的影响,您可以随时更改它(它也适用于log4j开箱即用)