У меня есть приложение, которое использует несколько различных классов Java и хотело бы иметь возможность предоставлять отладочный контекст для регистрации сообщений.
Этот (специфичный для приложения и данных) контекст (в основном, строка) будетсоздается или извлекается каким-либо образом каждым классом индивидуально и передается соответствующему вызову регистрации, например,
logger.debug(context + ", whatever error message");
Итак, мой вопрос: какой шаблон лучше всего использовать для реализации этой функциональности черезapplication?
Я имею в виду, что все классы, которые должны поддерживать контекстно-зависимое ведение журнала, реализуют интерфейс Java с несколькими подходящими методами, например
public interface ContextSensitive
{
public String getContext();
public String setContext();
}
, где setContext()
метод будет полезен в случаях, когда объект (скажем) secondObject создается из объекта (скажем) firstObject, у которого есть контекст, а secondObject - нет.Итак, firstObject также будет делать что-то вроде
secondObject = new SecondObject();
secondObject.setContext(context);
Имеет ли смысл вышесказанное, или я должен сделать что-то лучше?
Альтернатива, которую я рассматривал, - написать оболочку для ведения журнала.библиотека, предлагающая эту функциональность, но я не вижу никакой ценности для этого подхода по сравнению с тем, который я описал выше, на основе интерфейса ContextSensitive
.
Если есть какие-либо примеры проектов с открытым исходным кодом, которыепришлось решить ту же проблему, я был бы признателен за ссылку.
Большое спасибо!