Spring 日志文件名中的引导配置文件和环境
Spring boot profile and environment in the logfile name
如何在 Log4j2.xml
的日志文件的日志文件名中写入 Spring 配置文件和 Spring 环境
<?xml version="1.0" encoding="UTF-8"?>
<Configuration monitorInterval="10">
<Properties>
<Property name="env">????</Property>
<Property name="profile">????</Property>
<Property name="date">%d{yyyy-MM-dd_HHmm}</Property>
</Properties>
<Appenders>
<Console name="LogToConsole" target="SYSTEM_OUT">
<PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %c{1} %-5level %c{1} - %message%n"/>
</Console>
<RollingRandomAccessFile name="LogToFile" filePattern="./logs/filename_${env}_${profile}_${date}.log">
<PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %-5level %c{1} - %message%n"/>
<Policies>
<OnStartupTriggeringPolicy />
</Policies>
</RollingRandomAccessFile>
</Appenders>
<Loggers>
<Root level="INFO">
<AppenderRef ref="LogToConsole" />
<AppenderRef ref="LogToFile" />
</Root>
</Loggers>
</Configuration>
希望这篇博文对您有所帮助
https://www.logicbig.com/tutorials/spring-framework/spring-boot/profile-logback-logging-config.html
spring.main.banner-mode=off
spring.main.logStartupInfo=false
spring.profiles.active=prod
使用 ${sys:spring.profiles.active}
,因为使用 -D 给出的任何参数都算作系统属性。
<?xml version="1.0" encoding="UTF-8"?>
<Configuration monitorInterval="10">
<Properties>
<Property name="profile">${sys:spring.profiles.active}</Property>
<Property name="date">%d{yyyy-MM-dd_HHmm}</Property>
</Properties>
<Appenders>
<Console name="LogToConsole" target="SYSTEM_OUT">
<PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %c{1} %-5level %c{1} - %message%n"/>
</Console>
<RollingRandomAccessFile name="LogToFile" filePattern="./logs/filename_${profile}_${date}.log">
<PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %-5level %c{1} - %message%n"/>
<Policies>
<OnStartupTriggeringPolicy />
</Policies>
</RollingRandomAccessFile>
</Appenders>
<Loggers>
<Root level="INFO">
<AppenderRef ref="LogToConsole" />
<AppenderRef ref="LogToFile" />
</Root>
</Loggers>
</Configuration>
使用 Log4j 2.13.1 并包含 log4j-spring-cloud-config-client-2.13.1.jar 作为依赖项。这将使您可以访问 Spring 查找,这将使您可以访问 application.yml 或 bootstrap.yml 中定义的任何 属性。然后您可以添加
spring:
profile: lab
env: dev
到您的 Spring 配置,然后将您的 log4j2.xml 设置为:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration monitorInterval="10">
<Properties>
<Property name="profile">${spring:spring.profile:-default}</Property>
<Property name="env">${spring:spring.env:-dev}</Property>
<Property name="date">%d{yyyy-MM-dd_HHmm}</Property>
</Properties>
<Appenders>
<Console name="LogToConsole" target="SYSTEM_OUT">
<PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %c{1} %-5level %c{1} - %message%n"/>
</Console>
<RollingRandomAccessFile name="LogToFile" filePattern="./logs/filename_${env}_${profile}_${date}.log">
<PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %-5level %c{1} - %message%n"/>
<Policies>
<OnStartupTriggeringPolicy />
</Policies>
</RollingRandomAccessFile>
</Appenders>
<Loggers>
<Root level="INFO">
<AppenderRef ref="LogToConsole" />
<AppenderRef ref="LogToFile" />
</Root>
</Loggers>
</Configuration>
有了这个,Log4j 将在初始化后从 Spring 环境中检索值。请注意,Spring 启动应用程序将至少初始化日志记录 3 次,第一次发生在 Spring 拥有环境之前。您可以通过在 log4j2.component.properties 中配置其位置然后在 bootstrap.yml 中指定不同的日志记录配置文件来针对该情况使用不同的日志记录配置。 Log4j 2 提供了一个 sample application 来利用它并在 Spring 云配置服务器中访问其配置文件。
请注意,如果您将 log4j2.xml 文件存储在 Spring 云配置中,您可以为每个环境使用不同的 Log4j 配置并消除对变量的需要。
如何在 Log4j2.xml
的日志文件的日志文件名中写入 Spring 配置文件和 Spring 环境<?xml version="1.0" encoding="UTF-8"?>
<Configuration monitorInterval="10">
<Properties>
<Property name="env">????</Property>
<Property name="profile">????</Property>
<Property name="date">%d{yyyy-MM-dd_HHmm}</Property>
</Properties>
<Appenders>
<Console name="LogToConsole" target="SYSTEM_OUT">
<PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %c{1} %-5level %c{1} - %message%n"/>
</Console>
<RollingRandomAccessFile name="LogToFile" filePattern="./logs/filename_${env}_${profile}_${date}.log">
<PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %-5level %c{1} - %message%n"/>
<Policies>
<OnStartupTriggeringPolicy />
</Policies>
</RollingRandomAccessFile>
</Appenders>
<Loggers>
<Root level="INFO">
<AppenderRef ref="LogToConsole" />
<AppenderRef ref="LogToFile" />
</Root>
</Loggers>
</Configuration>
希望这篇博文对您有所帮助
https://www.logicbig.com/tutorials/spring-framework/spring-boot/profile-logback-logging-config.html
spring.main.banner-mode=off
spring.main.logStartupInfo=false
spring.profiles.active=prod
使用 ${sys:spring.profiles.active}
,因为使用 -D 给出的任何参数都算作系统属性。
<?xml version="1.0" encoding="UTF-8"?>
<Configuration monitorInterval="10">
<Properties>
<Property name="profile">${sys:spring.profiles.active}</Property>
<Property name="date">%d{yyyy-MM-dd_HHmm}</Property>
</Properties>
<Appenders>
<Console name="LogToConsole" target="SYSTEM_OUT">
<PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %c{1} %-5level %c{1} - %message%n"/>
</Console>
<RollingRandomAccessFile name="LogToFile" filePattern="./logs/filename_${profile}_${date}.log">
<PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %-5level %c{1} - %message%n"/>
<Policies>
<OnStartupTriggeringPolicy />
</Policies>
</RollingRandomAccessFile>
</Appenders>
<Loggers>
<Root level="INFO">
<AppenderRef ref="LogToConsole" />
<AppenderRef ref="LogToFile" />
</Root>
</Loggers>
</Configuration>
使用 Log4j 2.13.1 并包含 log4j-spring-cloud-config-client-2.13.1.jar 作为依赖项。这将使您可以访问 Spring 查找,这将使您可以访问 application.yml 或 bootstrap.yml 中定义的任何 属性。然后您可以添加
spring:
profile: lab
env: dev
到您的 Spring 配置,然后将您的 log4j2.xml 设置为:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration monitorInterval="10">
<Properties>
<Property name="profile">${spring:spring.profile:-default}</Property>
<Property name="env">${spring:spring.env:-dev}</Property>
<Property name="date">%d{yyyy-MM-dd_HHmm}</Property>
</Properties>
<Appenders>
<Console name="LogToConsole" target="SYSTEM_OUT">
<PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %c{1} %-5level %c{1} - %message%n"/>
</Console>
<RollingRandomAccessFile name="LogToFile" filePattern="./logs/filename_${env}_${profile}_${date}.log">
<PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %-5level %c{1} - %message%n"/>
<Policies>
<OnStartupTriggeringPolicy />
</Policies>
</RollingRandomAccessFile>
</Appenders>
<Loggers>
<Root level="INFO">
<AppenderRef ref="LogToConsole" />
<AppenderRef ref="LogToFile" />
</Root>
</Loggers>
</Configuration>
有了这个,Log4j 将在初始化后从 Spring 环境中检索值。请注意,Spring 启动应用程序将至少初始化日志记录 3 次,第一次发生在 Spring 拥有环境之前。您可以通过在 log4j2.component.properties 中配置其位置然后在 bootstrap.yml 中指定不同的日志记录配置文件来针对该情况使用不同的日志记录配置。 Log4j 2 提供了一个 sample application 来利用它并在 Spring 云配置服务器中访问其配置文件。
请注意,如果您将 log4j2.xml 文件存储在 Spring 云配置中,您可以为每个环境使用不同的 Log4j 配置并消除对变量的需要。