Logger代理类,用于隔离对Logging框架的依赖

时间:2015-01-02 05:16:21

标签: java-ee logging proxy slf4j

我们正在开发新的Java EE应用程序。对于日志记录,我们将继续使用slf4j bridge,以便不依赖于任何特定的框架。我正在考虑将这种方法带到下一级并编写一个记录器代理类,以便slf4j代码不会在应用程序中传播

public class MyLogger implements Serializable {

/**
 * 
 */
private static final long serialVersionUID = -9108178019072752331L;
private String loggerName;

private Logger logger;

public MyLogger (String loggerName) {
    this.loggerName = loggerName;
    initLogger();
}

private void initLogger() {
    logger = LoggerFactory.getLogger(loggerName);
}

public void error(String messageFormat, Object ...argArray) {
    logger.error(messageFormat, argArray);
}

public void info(String messageFormat, Object ...argArray) {
    logger.info(messageFormat, argArray);
}

public void warn(String messageFormat, Object ...argArray) {
    logger.warn(messageFormat, argArray);
}

public void debug(String messageFormat, Object ...argArray) {
    logger.debug(messageFormat, argArray);
}

}

并使用上面的类

private static final MyLogger logger = new MyLogger (
        TestClass.class.getCanonicalName());

并按如下方式调用方法:

logger.info("Audit Log :: ", auditLog.toString());

这是正确的做法吗?或者我也应该写一个工厂类?

0 个答案:

没有答案