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

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

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

Я изучил следующий подход: 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>

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

Более простое предложение - не выводить на консоль, выводить только на регистратор.

Boris the Spider 15.04.2018 20:24

@BoristheSpider, как бы мне это сделать, если у меня нет контроля над другими источниками вывода (в данном случае Буккит)

Jordie 15.04.2018 20:28
System.setOut? Или, что еще лучше, используйте их рекомендации.
Boris the Spider 15.04.2018 20:29

Я пробовал реализацию, она работает, но не улавливает все, что отправляется, это - это то, чего я пытаюсь достичь, но использую LogBack

Jordie 15.04.2018 20:57
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
4
182
0

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