У меня есть некоторые проблемы с пониманием использования обложек log4j2.Как использовать API-интерфейс обертки log4j2
Если вы следуете за этим link, вы найдете прилагаемый пример использования AbstractLoggerWrapper. Я просто скопировал следующий мир кода.
public class Log4j2Logger extends AbstractLogger
{
private static final String FQCN = AbstractLogger.class.getName();
private AbstractLoggerWrapper logImpl;
public Log4j2Logger(String name, String prefix, String logId, String instanceId)
{
super(name, prefix, logId, instanceId);
final AbstractLogger logger = (AbstractLogger) LogManager.getLogger(name);
this.logImpl = new AbstractLoggerWrapper(logger, name);
}
....
@Override
public void log(String message, LogLevel level)
{
logImpl.log(null, FQCN, toImplLevel(level), new SimpleMessage(createMessage(message)), null);
}
....
}
Я не понимаю причину подклассов AbstractLogger и стажер с помощью AbstractLoggerWrapper. Я мог бы просто удалить расширение из Log4j2Logger и инкапсулировать AbstractLoggerWrapper. Видите ли вы какую-либо причину этого, как в коде, перекошенном выше?
Есть ли способ подкласса AbstractLogger (например, preferred) и просто использовать его без оболочки? И создать его как шаблон стратегии? например,
LogManager.getLogger(class.getName(), Log4j2Logger.class)
Может быть, это то, что они пытались объяснить в extending section, и я не понимаю, пока нет. Кто-нибудь знает, как это сделать?
С уважением Christian
Обновление: Я пропустил сказать, причина, почему я использую обертку из-за существующего Projekt с log4j (1.2) с оберткой.
Я совсем не знаю, как это лучше, вот почему я спрашиваю, как правильно использовать его. :) –