I use log4j for logging. And I would like to modify methods: warn(..), error(..). I would like to modify message in this methods.
So, is there any way, how to create my own logger?
public class MyLogger extends Logger {
protected MyLogger(String name) {
super(name);
}
@Override
public void error(Object message) {
message = "test - " + message;
super.error(message);
}
}
And in class call:
private static final Logger logger = MyLogger.getLogger(TestClass.class);
logger.error("error message");
But it, do not work. Could you help me? Thanks.
Best Answer
Your problem is that:
is a
static
method which returns originalLogger
class.MyLogger
is ignored. The easiest approach is to wrap originally returnedLogger
class in the spirit of decorator pattern:In order to use
MyLogger
decorator you must wrap original logger with it:Consider wrapping it in custom factory.