Конфигурация Logback Spring Boot не работает в Azure

Я настроил анонимайзер для своего регистратора:

--> logback.xml
<?xml version = "1.0" encoding = "UTF-8"?>
<configuration>
    <include resource = "org/springframework/boot/logging/logback/defaults.xml"/>
        <appender name = "CUSTOM_CONSOLE" class = "ch.qos.logback.core.ConsoleAppender">
            <filter class = "ch.qos.logback.classic.filter.ThresholdFilter">
                <level>${CONSOLE_LOG_THRESHOLD}</level>
            </filter>
            <encoder class = "ch.qos.logback.core.encoder.LayoutWrappingEncoder">
                <layout class = "util.CustomPatternLayout">
                    <anonymize>someFieldName</anonymizeJson>
                    <pattern>${CONSOLE_LOG_PATTERN}</pattern>
                    <charset>${CONSOLE_LOG_CHARSET}</charset>
                </layout>
            </encoder>
        </appender>
        <root>
            <appender-ref ref = "CUSTOM_CONSOLE"/>
        </root>
    <logger name = "root" level = "INFO"/>
</configuration

Локально все работает нормально, но когда оно развертывается в Azure в контейнере Docker, похоже, он игнорирует мой файл журнала.

Я пытался использовать этот файл для конфигурации с именами: logback.xml, logback-spring.xml. Я попытался указать конфигурацию для докер-контейнера -Dlogback.configurationFile=src/main/resources/logback-spring.xml и также с этим в application.yml

У меня есть агент Application Insights, возможно, он мешает моему ведению журнала?

logging:
  config: classpath:logback.xml

Локально все в порядке, но на Azure возникли проблемы.

в папке ресурсов просто поместите файл с именем logback-spring.xml, это все, что вам нужно. Часть <include не нужна и, вероятно, именно она ломается во время начальной загрузки.

Paizo 07.05.2024 13:42

include необходим из-за наличия значений по умолчанию для env и т. д.

Volodymyr Burmus 07.05.2024 14:02

@VolodymyrBurmus, не могли бы вы сказать, какую версию приложения Insight вы используете?

Suresh Chikkam 08.05.2024 10:52

@SureshChikkam Версия 3.4.16.

Volodymyr Burmus 08.05.2024 10:58

Можете ли вы понизить версию applicationinsights-agent.jar до 3.2.4 и обновить один раз.

Suresh Chikkam 08.05.2024 11:12
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Версия Java на основе версии загрузки
Версия Java на основе версии загрузки
Если вы зайдете на официальный сайт Spring Boot , там представлен start.spring.io , который упрощает создание проектов Spring Boot, как показано ниже.
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
0
5
119
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

пытался использовать этот файл для конфигурации с именами: logback.xml, logback-spring.xml. Я пытался указать конфигурацию для докер-контейнера -Dlogback.configurationFile=src/main/resources/logback-spring.xml, а также с этим в application.yml.

logback.xml не включается в окончательный JAR-файл и указывает его местоположение извне при запуске приложения Spring Boot.

  • При запуске приложения Spring Boot укажите расположение внешнего файла конфигурации Logback, используя системное свойство -Dlogback.configurationFile. Это свойство сообщает Logback, где найти файл конфигурации.
java -Dlogback.configurationFile=file:/full_path/logback.xml -jar app.jar

Разверните JAR Spring Boot без включенного в него файла logback.xml. Убедитесь, что файл logback.xml находится в том же каталоге, что и файл JAR на сервере Azure.

Добавьте зависимости:

  • В свой pom.xml добавьте следующие зависимости для Application Insights:
<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>applicationinsights-runtime-attach</artifactId>
    <version>3.4.18</version>
</dependency>
<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>applicationinsights-core</artifactId>
    <version>3.4.18</version>
</dependency>

Конфигурация Логбек:

  • Создайте файл logback.xml в своем проекте (если вы еще этого не сделали).
  • Определите формат журнала и приложение.

Ссылка:

Если возможно, попробуйте использовать приведенную ниже версию для Java, если описанный выше подход не удовлетворен.

Я проверил, мой журнал регистрации включен в папку ресурсов. Также пытался запустить тот же контейнер локально без анализа приложений, все работало нормально. Поэтому проблема находится где-то между развертыванием и Azure.

Volodymyr Burmus 09.05.2024 12:06

Убедитесь, что файл конфигурации Logback включен в развернутый пакет. Иногда сценарии развертывания или файлы конфигурации могут случайно исключить определенные ресурсы.

Suresh Chikkam 16.05.2024 07:39

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