I am creating custom logging functionalities class that internally uses the LOG4j. those classes that wants to used logging functionalities,it pass the name of class.i want to know how i am able to restrict object creation without passing the class-name to it.i tried but i am not sure that Is it a correct way i did?
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);
}
Thanks