Ответ 1
Ну, я нашел одно решение:
Я перемещаю свойство as в свои application.properties, а также удаляю корень тега из файла logback.xml и отлично работаю.
Я пытаюсь разбить мой logback.xml профилями под springboot, этот мой подход:
Logback-prod.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
<property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:- ${java.io.tmpdir:-/tmp}}/}spring.log}"/>
<include resource="org/springframework/boot/logging/logback/file- appender.xml" />
<root level="INFO">
<appender-ref ref="CONSOLE" />
</root>
</configuration>
Logback-dev.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
<include resource="org/springframework/boot/logging/logback/console-appender.xml" />
<root level="DEBUG">
<appender-ref ref="CONSOLE" />
</root>
logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="logback-${spring.profiles.active}.xml"/>
<root level="INFO">
<appender-ref ref="FILE" />
<appender-ref ref="CONSOLE" />
</root>
И, наконец, используйте:
-Dspring.profiles.active=dev
or
-Dspring.profiles.active=prod
Я получил консоль:
13:01:44,673 |-ERROR in [email protected]:16 - no applicable action for [configuration], current ElementPath is [[configuration][configuration]]
13:01:44,674 |-ERROR in [email protected]:81 - no applicable action for [include], current ElementPath is [[configuration][configuration][include]]
13:01:44,674 |-ERROR in [email protected]:89 - no applicable action for [include], current ElementPath is [[configuration][configuration][include]]
13:01:44,674 |-ERROR in [email protected]:25 - no applicable action for [root], current ElementPath is [[configuration][configuration][root]]
13:01:44,674 |-ERROR in [email protected]:39 - no applicable action for [appender-ref], current ElementPath is [[configuration][configuration][root][appender-ref]]
13:01:44,675 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to INFO
Ну, я нашел одно решение:
Я перемещаю свойство as в свои application.properties, а также удаляю корень тега из файла logback.xml и отлично работаю.
Spring загрузочная документация рекомендует использовать logback-spring.xml
, а не logback.xml
, и в нем вы можете использовать тег spring:
<configuration>
<springProfile name="workspace">
...
</springProfile>
<springProfile name="dev,prd">
...
</springProfile>
</configuration>
Если вам нужны разные файлы конфигурации обратного входа для разных профилей, вы можете изменить их в своих application-*.properties
.
Например, в ваших application-prod.properties
вы можете сказать:
logging.config=src/main/resources/logback-prod.xml
"Я перемещаю свойство as в мои application.properties, а также удаляю корень тега из logback.xml и работаю нормально".
Я не получаю это письмо. Пожалуйста, объясни.
Я использую весеннюю загрузку 2.x. Я создал файлы свойств на основе профиля, такие как application-dev.properties, application-qa.properties и application-prod.properties.
Таким же образом я создал logback-dev.xml, logback-qa.xml и logback-prod.xml
Достаточно ли интеллектуален Spring для чтения соответствующих файлов регистрации и приложений на основе свойства spring-profile-active? Или нам нужно добавить какую-нибудь запись?
Я решил эту проблему, установив другой путь в application-dev.properties и application-prod.properties для переменной HOME_LOG и установив динамическое свойство ресурса в файле logback.spring.xml
logback-spring.xml
<property resource="application-${spring.profiles.active}.properties" />
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>
%gray(%d{ISO8601}) %highlight(%-5level) [%yellow(%t)] %cyan(%C{1.}): %msg%n%throwable
</Pattern>
</layout>
</appender>
<appender name="FILE-ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${HOME_LOG}/mylog.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>${HOME_LOG}/backup/mylog-%d{yyyy-MM-dd}.log</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%d %p %c{1.} [%t] %m%n</pattern>
</encoder>
</appender>
и в application-dev.properties
HOME_LOG=C:/var/log/myapp/dev
и в application-prod.properties
HOME_LOG=C:/var/log/myapp/prod