
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.97.14.88] |
![]() |
|
Сообщ.
#1
,
|
|
|
Здраствуйте! да да это снова я
![]() Вопрос как расширить класс Logger из org.apache.log4j? Тут я пробую его расширить добавляя новый метод debug но нифига не получается ![]() ![]() ![]() package com.mudosoft.libraries; import org.apache.log4j.BasicConfigurator; import org.apache.log4j.Logger; import java.util.function.Supplier; public class MyLoggerDemo { public static void main(String[] args) { Logger logger = MyLogger.getLogger("mylogger"); BasicConfigurator.configure(); logger.debug(() -> "Look at this " + expensiveOperation()); // ^^ не катит } private static String expensiveOperation() { return "expensive operation"; } } class MyLogger extends Logger { protected MyLogger(String name) { super(name); } public void debug(Supplier<String> message) { if (isDebugEnabled()) { debug(message.get()); } } } Причина понятна, не понятно как решить ![]() |
Сообщ.
#2
,
|
|
|
Сам все по решал!
![]() ![]() ![]() public class MyLoggerDemo { public static void main(String[] args) { MyLogger logger = new MyLogger(Logger.getLogger("mylogger")); BasicConfigurator.configure(); logger.debug(() -> "Look at this " + expensiveOperation()); // 0 [main] DEBUG mylogger - Look at this expensive operation } private static String expensiveOperation() { return "expensive operation"; } } class MyLogger { private Logger logger; public MyLogger(Logger logger) { this.logger = logger; } public void debug(Supplier<String> message) { if (isDebugEnabled()) { debug(message.get()); } } public boolean isDebugEnabled() { return logger.isDebugEnabled(); } public void debug(Object message) { logger.debug(message); } } Тут населедование не катит заюзал агрегацию ![]() |