#java #logging #log4j #logback
#java #ведение журнала #log4j #возврат в систему
Вопрос:
как я могу получить версию проекта maven в файле конфигурации logback, поскольку я хочу зарегистрировать номер версии проекта. вот файл maven.
<groupId>com.shanil</groupId>
<artifactId>loggingDemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>loggingDemo</name>
<description>Demo project for Spring Boot logging</description>
вот файл конфигурации обратного входа в систему
<appender name="Console"
class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>
CEF:1|CompanyTest|%X{nameofapplication:-loggingDemo}|**version number here**| %msg%n
</Pattern>
</layout>
</appender>
Ответ №1:
У вас может быть шаг сборки, который принимает файл обратной записи шаблона и заполняет некоторые заполнители. С точки зрения logback, версия тогда будет просто произвольной строкой, как CEF:1|CompanyTest|
и часть.
Плагин ресурсов Maven должен быть в состоянии достичь этого. Он использует «фильтрацию» для замены заполнителей.
<build>
<resources>
<resource>
<includes>
<include>some/dir/logback.template.xml</include>
</includes>
<targetPath>some/outputpath/logback.xml</targetPath>
<filtering>true</filtering>
</resource>
</resources>
</build>
Ваш шаблон обратной регистрации будет выглядеть примерно так
<Pattern>
CEF:1|CompanyTest|%X{nameofapplication:-loggingDemo}|${project.artifact.id}| %msg%n
</Pattern>
Возможно, вы захотите поиграть с изменением разделителя; не уверен, будет ли формат по умолчанию ${...}
хорошо сочетаться с форматом logback {...}
. Таким образом, вы могли бы изменить разделитель на **
или что-то в этом роде.
Комментарии:
1. вышеупомянутое решение должно было сработать, но я пробовал так много раз, и ничего не работает. он не изменяет конфигурационный файл logback. если вы не возражаете, было бы здорово, если бы вы могли предоставить образец проекта через git или что-то в этом роде, и это действительно очень помогло бы мне. Спасибо
2. спасибо за идею. Я заставил это работать. проблема была с разделителем
Ответ №2:
вот ответ . шаблон
<Pattern>
CEF:1|CompanyTest|%X{nameofapplication:-loggingDemo}|${project.artifact.id}| %msg%n
</Pattern>
pom.xml
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>logback-test.xml</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<useDefaultDelimiters>false</useDefaultDelimiters>
<encoding>UTF-8</encoding>
<delimiters>
<delimiter>${*}</delimiter>
</delimiters>
</configuration>
</plugin>
</plugins>