Как получить имя класса запущенного приложения в файле logback.xml и поставить его в условную проверку?
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="10 seconds">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- Log message format -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<!-- Name of the file where the log messages are written -->
<file>${IR_HOME}/ir_logs/ir_csp_management.log</file>
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<logger name="com.administration.csp" level="DEBUG" >
<appender-ref ref="FILE" />
</logger>
<root>
<appender-ref ref="STDOUT"/>
</root>
<!-- Setting the root level of logging to INFO -->
<root level="OFF">
<appender-ref ref="FILE" />
<appender-ref ref="STDOUT" />
</root>
<appender name="FILE1" class="ch.qos.logback.core.FileAppender">
<!-- Name of the file where the log messages are written -->
<file>${IR_HOME}/ir_logs/ir_demoLog_management.log</file>
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<logger name="com.demo" level="DEBUG">
<appender-ref ref="FILE1" />
</logger>
<!-- Setting the root level of logging to INFO -->
<root level="info">
<appender-ref ref="FILE" />
<appender-ref ref="FILE1" />
</root>
</configuration>
Только при запуске демонстрационного приложения с именем logger ="com.demo" создаются 2 файла с обоими журналами демонстрационного приложения.
Я хочу, чтобы были созданы только журналы демо-приложений, а не журналы csp с logger name="com.administration.csp".
1 ответ
1. Получить имя класса:
использование %class
или же %C
в <pattern>
2. Проверка состояния в logback.xml.
Обратитесь к этому официальному документу - Условная обработка файлов конфигурации.
Чтобы выполнить условную проверку в конфигурации logback, в ваш проект должен быть добавлен janino librar y.
<dependency>
<groupId>org.codehaus.janino</groupId>
<artifactId>janino</artifactId>
<version>2.7.8</version>
</dependency>