Добавить пользовательские записи в Eclipse E4 - PullRequest
0 голосов
/ 22 мая 2019

У меня есть приложение Eclipse E4, и я хочу добавить в него несколько пользовательских журналов (с Logback). Но когда я делаю это с помощью метода postContectCreate жизненного цикла приложения, он всегда дает мне диалоговое окно с исключением. Я не хочу, чтобы это диалоговое окно, но журналы должны быть записаны в файл журнала. Как мне этого добиться?

Я пытался:

 @PostContextCreate
  void postContextCreate(IEclipseContext workbenchContext) {

    ...

    workbenchContext.set(IEventLoopAdvisor.class, new EclipseLogs());
  }

public class EclipseLogs implements IEventLoopAdvisor {

  private static final Logger logger = LoggerFactory.getLogger(EclipseLogs.class);

  @Override
  public void eventLoopException(Throwable e) {
    logger.error(e.getMessage(), GlobalData.getInstance().getCurrentUserName(), e);   
  }

  @Override
  public void eventLoopIdle(Display display) {
    display.sleep();
  }

}

Мой файл logback.xml выглядит так:

<?xml version="1.0" encoding="UTF-8"?>

<configuration>

    <appender name="TIME_BASED_FILE"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- daily rollover -->
            <fileNamePattern>logs/%d{yyyy-MM-dd}.log
            </fileNamePattern>
            <maxHistory>7</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} (%line\) -
                %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n
            </pattern>
        </encoder>
    </appender>

    <root level="ALL">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="TIME_BASED_FILE" />
    </root>

    <root level="ERROR">
        <appender-ref ref="org.eclipse.jetty.websocket.LEVEL" />
    </root>

</configuration>

Я хочу, чтобы исключения возникали в моем консольном терминале при его запуске изнутри самого Eclipse, но при запуске в качестве автономного приложения оно должно записывать исключение в файл журнала.

Сам диалог выглядит так: enter image description here

...