журналы исчезают в облачной среде, как только я начинаю использовать Google LoggingAppender в logback? - PullRequest
0 голосов
/ 06 марта 2020

Понятия не имею, как отлаживать, поскольку ошибок нет. У меня есть этот файл журнала, но он заставил все журналы исчезнуть для моего экземпляра cloudrun, ЗА ИСКЛЮЧЕНИЕМ system.out, который регистрирует журнал при запуске ..

<?xml version="1.0" encoding="UTF-8" ?>
<configuration scan="true" scanPeriod="30 seconds" debug="true">

    <contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
        <resetJUL>true</resetJUL>
    </contextListener>

    <appender name="CLOUD" class="com.google.cloud.logging.logback.LoggingAppender">
        <!-- Optional : filter logs at or above a level -->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
        <flushLevel>WARN</flushLevel> <!-- Optional : default ERROR -->
    </appender>

    <appender name="ASYNC-SERVERLOG" class="ch.qos.logback.classic.AsyncAppender">
        <appender-ref ref="CLOUD" />
    </appender>

    <!-- TBD for later use for apps that use log4jdbc it doesn't hurt apps that
        don't use it -->
    <logger name="jdbc.sqlonly" level="INFO" />
    <logger name="jdbc.sqltiming" level="WARN" />
    <logger name="jdbc.audit" level="WARN" />
    <logger name="jdbc.resultset" level="WARN" />
    <logger name="jdbc.connection" level="WARN" />

    <root>
        <level value="INFO" />
        <appender-ref ref="ASYNC-SERVERLOG" />
    </root>
</configuration>

Любые идеи, почему регистрация перестает работать или куда идет регистрация к? Теперь, когда я изменил ведение журнала на это, ведение журнала кажется go пустым: (.

Я также опробовал этот пост, который регистрирует в ConsoleAppender, но НИЧЕГО не отображается в формате json, хотя это делает строка для КАЖДОГО оператора журнала, который я делаю, что действительно приятно

GKE & Stackdriver: Java формат журнала регистрации?

Затем я попробовал этот подход, который использует FileAppender

Как мне сопоставить мои java события регистрации приложений с соответствующими уровнями событий облачной регистрации в GCP Feibis некомпатного App Engine?

Мой логин для этого был

<appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <file>/var/log/app.log</file>
    <append>true</append>
    <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
        <layout class="com.orderlyhealth.GCPCloudLoggingJSONLayout">
            <pattern>%-4relative [%thread] %-5level %logger{35} - %msg</pattern>
        </layout>
    </encoder>
</appender>

<appender name="ASYNC-SERVERLOG" class="ch.qos.logback.classic.AsyncAppender">
    <appender-ref ref="FILE" />
</appender>

Есть идеи?

1 Ответ

1 голос
/ 08 марта 2020

Инструкции по ведению журнала Java в документации должны помочь: https://cloud.google.com/run/docs/logging#run_manual_logging - java

В Cloud Run выходные данные в Stdout и Stderr направляются в Stackdriver. Журналы, записанные в файлах, утеряны.

Я не уверен в последствиях приложения ASYN C -SERVERLOG, но в Cloud Run есть только процессор, доступный для обработки и отправки журналов, пока запрос обрабатывается, поэтому, если что-то отправляет журналы асинхронно, оно будет работать только во время этого запроса или будущего запроса, который достигнет того же экземпляра контейнера.

...