做素材網(wǎng)站存儲(chǔ)搜索最多的關(guān)鍵詞的排名
目錄
Log4j2配置
springboot多環(huán)境日志配置
參考資料
Log4j2配置
如果你想要在控制臺(tái)輸出美化的日志信息,你可以使用Log4j2的ConsoleAppender和AnsiColorConverter來(lái)實(shí)現(xiàn)。下面是相應(yīng)的配置示例:
<Configuration status="WARN"><Properties><Property name="logPath">/path/to/logs</Property></Properties><Appenders><Routing name="RoutingAppender"><Routes pattern="$${ctx:loggerType}"><Route key="info" ref="InfoFileAppender"><Filters><ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/></Filters></Route><Route key="error" ref="ErrorFileAppender"><Filters><ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/></Filters></Route></Routes></Routing><Console name="ConsoleAppender" target="SYSTEM_OUT"><PatternLayout pattern="%highlight{%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n}{FATAL=red, ERROR=red, WARN=yellow, INFO=green, DEBUG=blue, TRACE=blue}" /></Console><RollingFile name="InfoFileAppender" fileName="${logPath}/info.log"filePattern="${logPath}/info-%d{yyyy-MM-dd-HH}.log"><PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" /><Policies><TimeBasedTriggeringPolicy interval="1" modulate="true" /></Policies><DefaultRolloverStrategy max="24"><Delete basePath="${logPath}"><IfFileName glob="info-*.log" /><IfLastModified age="7d" /></Delete></DefaultRolloverStrategy><Actions><GZCompress><IfLastModified age="7d"/></GZCompress></Actions></RollingFile><RollingFile name="ErrorFileAppender" fileName="${logPath}/error.log"filePattern="${logPath}/error-%d{yyyy-MM-dd-HH}.log"><PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" /><Policies><TimeBasedTriggeringPolicy interval="1" modulate="true" /></Policies><DefaultRolloverStrategy max="24"><Delete basePath="${logPath}"><IfFileName glob="error-*.log" /><IfLastModified age="7d" /></Delete></DefaultRolloverStrategy><Actions><GZCompress><IfLastModified age="7d"/></GZCompress></Actions></RollingFile></Appenders><Loggers><Root level="info"><AppenderRef ref="RoutingAppender"/><AppenderRef ref="ConsoleAppender"/></Root></Loggers>
</Configuration>
在這個(gè)配置中,我們定義了兩個(gè)RollingFile appender,分別用于info日志和error日志。每個(gè)appender都有自己的文件名、文件模式、時(shí)間觸發(fā)策略和滾動(dòng)策略。同時(shí),我們使用了DeleteAction來(lái)保持每個(gè)類型的日志文件在7天內(nèi),并使用GZCompressAction在滿足條件后進(jìn)行壓縮。
使用RoutingAppender可以根據(jù)Logger的上下文信息將日志路由到不同的appender。在這個(gè)示例中,我們使用"loggerType"作為Routing key,并在Routes元素內(nèi)定義了兩個(gè)Route,分別將"info"和"error"路由到對(duì)應(yīng)的appender。
最后,我們將RoutingAppender作為Root logger的Appender引用,以便所有日志都能正確路由到相應(yīng)的appender。
請(qǐng)根據(jù)實(shí)際需求修改logPath配置屬性,將日志存儲(chǔ)在適當(dāng)?shù)奈恢?。另?#xff0c;你可以通過(guò)修改DeleteAction的條件來(lái)實(shí)現(xiàn)按照3個(gè)月刪除文件的需求。例如,可以將<IfLastModified age="7d" />
改為<IfLastModified age="90d" />
。
springboot多環(huán)境日志配置
在Spring Boot多環(huán)境下,可以為不同環(huán)境分別配置不同的Log4j2配置文件,使用Spring Boot提供的`logging.config`配置項(xiàng)指定當(dāng)前環(huán)境下使用的Log4j2配置文件。
首先,在項(xiàng)目的resources目錄下創(chuàng)建多個(gè)Log4j2配置文件,以application-{profile}.yml(或application-{profile}.properties)命名,其中{profile}為環(huán)境名稱,如application-dev.yml、application-test.yml和application-prod.yml。
接著,在Spring Boot的配置文件(如application.yml)中,指定`logging.config`配置項(xiàng)的值為當(dāng)前環(huán)境下使用的Log4j2配置文件路徑。例如:
```yaml
spring:
? profiles:
? ? active: dev
? application:
? ? name: myapp
? main:
? ? allow-bean-definition-overriding: true
? jackson:
? ? date-format: yyyy-MM-dd HH:mm:ss
? ? time-zone: GMT+8
logging:
? config: classpath:log4j2-${spring.profiles.active}.xml
```
在上面的配置中,我們將`logging.config`配置項(xiàng)的值設(shè)置為`classpath:log4j2-${spring.profiles.active}.xml`,即使用當(dāng)前激活的環(huán)境對(duì)應(yīng)的Log4j2配置文件。這里使用了`${spring.profiles.active}`EL表達(dá)式獲取當(dāng)前激活的環(huán)境名稱。
最后,在Log4j2配置文件中,可以使用`${sys:property}`獲取系統(tǒng)屬性,例如`${sys:logPath}`獲取名為`logPath`的系統(tǒng)屬性。也可以使用`${ctx:variableName}`獲取Log4j2上下文變量。
例如,在Log4j2配置文件中,可以使用以下方式獲取當(dāng)前環(huán)境對(duì)應(yīng)的配置項(xiàng):
```xml
<Configuration>
? ? <Properties>
? ? ? ? <Property name="logPath">${sys:logPath}</Property>
? ? </Properties>
? ? <!-- 定義Appenders和Loggers -->
</Configuration>
```
在上面的配置中,我們使用`${sys:logPath}`獲取名為`logPath`的系統(tǒng)屬性。
這樣,就可以實(shí)現(xiàn)在Spring Boot多環(huán)境下使用Log4j2的配置了。
參考資料
log4j2 的使用【超詳細(xì)圖文】-CSDN博客
log4j2 實(shí)際使用詳解-CSDN博客