My C backgroud make me very unhappy when logging with java. I always have to type
log.info(String.format(“Logging field %s: with value: %d”, field, value));
Today I decide to extend the default log4j logger implementing my log.info & co using java varags.
I created two classes:
CustomLoggerFactory implements LoggerFactory:
- @implement makeNewLoggerInstance(String name)Â return new MyLogger(name);
MyLogger extends Logger:
- private MyLoggerFactory factory = new MyLoggerFactory();
- @override getLogger(Class clazz)
- info(String format, Object... params)
Now I can use MyLogger
MyLogger log = (MyLogger) MyLogger.getLogger(getClass());
log.info("Test base:string %s int %d" , "string", 0);
Further info here http://www.beknowledge.com/archives/article/extending-log4j-to-create-custom-logging-components