我们正在开发新的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());
这是正确的做法吗?或者我也应该写一个工厂类?