Конфигурация Logback просто объединяет указанные вами элементы.Он не составляет компоненты самостоятельно.В приведенном выше файле конфигурации вы не указали элемент макета, и поэтому он не будет внедрен в ваш ControlAppender.
Поскольку я не знаю, что делает ControlAppender, я не могу предложить наиболее подходящее решение.,Однако у вас есть как минимум две опции:
1) Пусть ControlAppender принимает макет в качестве параметра.Ваш конфигурационный файл будет выглядеть примерно так:
<configuration>
<appender name="ControlAppender" class="org.quackbot.ControlAppender">
<layout class="class="ch.qos.logback.classic.PatternLayout"">
<pattern>%d{MM/dd/yyy hh:mm:ss a} %-5p %c - </pattern>
</layout>
</appender>
</configuration>
При входе в систему в журнал будет добавлен экземпляр PatternLayout в ControlAppender.Затем вы можете использовать экземпляр PatternLayout для форматирования событий в соответствии с выбранным шаблоном.
2) Если вы всегда собираетесь использовать PatternLayout, вы можете создать его непосредственно из шаблона.Ваш конфигурационный файл будет выглядеть примерно так:
<configuration>
<appender name="ControlAppender" class="org.quackbot.ControlAppender">
<pattern>%d{MM/dd/yyy hh:mm:ss a} %-5p %c - </pattern>
</appender>
</configuration>
Вам потребуется метод установки в ControlAppender, то есть setPattern, для вставки шаблона в ControlAppender.Получив шаблон, вы можете создать PatternLayout самостоятельно.Например, вызвав:
PatternLayout pl = new PatternLayout();
pl.setPattern(pattern);
pl.setContext(context);
pl.start();
Если вы нуждаетесь в дополнительной помощи, прокричите в списке пользователей при выходе из системы.