Перенаправить вывод консоли на пользовательский приложение LogBack

Сегодня я начал использовать LogBack в сочетании с SLF4J для моего проекта. Я пытался перенаправить весь вывод консоли (из моего собственного проекта и других) на пользовательский аппендер.

Конечная цель - перенаправить весь вывод в канал чата Discord.

Я рассмотрел следующий подход: java runtime.getruntime (), получающий вывод от выполнения программы командной строки, но он не был успешным.

Я стремлюсь к следующей структуре:

  1. Консольное сообщение отправлено другой библиотекой
  2. Поймай сообщение и обработай его

Я попробовал следующую реализацию:

public class DiscordAppender extends AppenderBase<ILoggingEvent> {
    @Override
    protected void append(ILoggingEvent eventObject) {
        SomeDiscordClient.sendMessage(specificChannel, eventObject.getFormattedMessage());
    }
}

Со следующим файлом logback.xml:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appender name="DISCORD" class="package.DiscordAppender"/>

    <root level="TRACE">
        <appender-ref ref="DISCORD"/>
    </root>
</configuration>

Но этот подход не работает, надеюсь, кто-то может мне помочь.

0 ответов

Другие вопросы по тегам