我正在創建內部使用LOG4j的自定義日誌記錄功能類。那些想要使用日誌記錄功能的類,它傳遞了class.i的名字,我想知道我如何能夠限制對象的創建,而不需要將類名傳遞給它。我試過但我不確定這是否是一種正確的方法我做了?如何用某些依賴注入來限制對象創建?
public class LoggerObject { private Logger logger; private static LoggerObject loggerobj; private ConstantDataManager constantdatamanger; //Default Log4J_FILE Path private LoggerObject(String className) { try { DOMConfigurator.configure(this.getClass().getClassLoader().getResource(constantdatamanger.LOG4J_FILE)); logger =Logger.getLogger(className); } catch(Exception ex) { System.out.println("DOMConfigurator could not find file"+ex.getMessage()); } } public static LoggerObject getLogger(String className) { if (loggerobj==null) { loggerobj = new LoggerObject(className); } return loggerobj; } public void info(Object message) { logger.info(message); } public void info(Object message, Throwable t) { logger.info(message, t); } public void error(Object message) { logger.error(message); } public void error(Object message, Throwable t) { logger.error(message,t); } public void debug(Object message) { logger.debug(message); } public void debug(Object message, Throwable t) { logger.debug(message,t); } public void warn(Object message) { logger.warn(message); } public void warn(Object message, Throwable t) { logger.warn(message,t); } public void fatal(Object message) { logger.fatal(message); } public void fatal(Object message, Throwable t) { logger.fatal(message,t); }
感謝
限制如何?同樣,實施slf4j API可能會使您的代碼更具可移植性。 – 2011-03-08 07:15:56