Не удается увидеть журналы на стекдрайвере при использовании приложения входа в Java - PullRequest
0 голосов
/ 22 января 2019

Мое приложение в dropwizard, недавно я загрузил его на gcp. Для регистрации нам нужно использовать стекдрайвер Я не эксперт GCP просто следовал https://cloud.google.com/logging/docs/setup/java. Я использовал способ регистрации логов, чтобы показывать логи на стекдрайвере.

Насколько я понял, чтобы реализовать ведение журнала в стеке с помощью приложения для ведения журнала, нам нужно сделать две основные вещи:

  1. добавить appender для облака в logback.xml
  2. добавить зависимость "com.google.cloud:google-cloud-logging-logback:0.77.0-alpha" в build.gradle.

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

1 Ответ

0 голосов
/ 04 марта 2019

Для dropwizard это немного сложнее, так как очень упрямый. Вот шаги, которые вы должны использовать для ведения журнала в стеке с помощью облачной регистрации. Примечание: я использовал версию 0.77.0-alpha библиотеки com.google.cloud:google-cloud-logging-logback.

  1. Создайте класс, который реализует AppenderFactory<ILoggingEvent> с аннотацией JsonTypeName:
@JsonTypeName("stackdriver")
public class StackdriverLoggingAppenderFactory implements AppenderFactory<ILoggingEvent> {

    @Override
    public Appender<ILoggingEvent> build(LoggerContext context, String applicationName,
                                         LayoutFactory<ILoggingEvent> layoutFactory,
                                         LevelFilterFactory<ILoggingEvent> levelFilterFactory,
                                         AsyncAppenderFactory<ILoggingEvent> asyncAppenderFactory) {
        final LoggingAppender appender = new LoggingAppender();
        appender.setName("stackdriver");
        appender.setContext(context);
        appender.start();
        return appender;
    }
}
  1. Добавьте значение аннотации в раздел ведения журнала файла конфигурации dropwizard (yaml):
logging:
  level: INFO
  appenders:
  - type: stackdriver
  1. Добавить файл с именем io.dropwizard.logging.AppenderFactory в src/main/resources/META-INF.services. Файл должен содержать полный пакет и имя класса, созданные на шаге 1, например,
com.acme.gcp.logging.StackdriverLoggingAppenderFactory
  1. Наконец, добавьте переменную среды с ключом GOOGLE_CLOUD_PROJECT и значением идентификатора проекта, в котором запускается экземпляр.

Я проверил это, запустив приложение локально на своем ноутбуке, и я увидел записи журнала в консоли Google Cloud в разделе Stackdriver Logging.

...