spring日誌配置分別使用springboot自帶日誌,logbak日誌以及log4j2日誌
阿新 • • 發佈:2019-01-13
Springboot日誌配置:
Springboot日誌配置分別可以分為自帶的日誌,醫用第三方日誌;
以下分別下介紹springboot自帶日誌配置,引用logback,以及log4j2日誌。
1、 預設配置檔案配置(不推薦使用):因為不夠靈活
配置方式比較簡單:在application.properties檔案中配置:
#日誌檔名,比如:gm-manas.log,或者是 /var/log/gm-manas.log logging.file=/opt/log/gm-manas.log #日誌級別配置,比如: logging.leAvel.org.springframework=DEBUG logging.level.*=info logging.level.org.springframework=DEBUG
例如:
2、使用logback日誌框架配置(spring的預設配置框架方式)
spring boot預設會載入classpath:logback-spring.xml檔案。
使用自定義配置檔案,配置方式為:在application.properties檔案中配置:
#配置日誌,日誌路徑可以自定義
logging.config=classpath:log/logback-gm.xml
日誌檔案在src/main/resource/log/logback-gm.xml貼上下面內容:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- 檔案輸出格式 --> <property name="PATTERN" value="%-12(%d{yyyy-MM-dd HH:mm:ss.SSS}) |-%-5level [%thread] %c [%L] -| %msg%n" /> <!-- test檔案路徑 --> <property name="TEST_FILE_PATH" value="e:/opt/gm/test/logs" /> <!-- pro檔案路徑 --> <property name="PRO_FILE_PATH" value="/opt/gm/prod/logs" /> <!-- 開發環境 --> <springProfile name="dev"> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>${PATTERN}</pattern> </encoder> </appender> <!-- 日質包路徑 --> <logger name="com.gm.manas.web" level="debug"/> <root level="info"> <appender-ref ref="CONSOLE" /> </root> </springProfile> <!-- 測試環境 --> <springProfile name="test"> <!-- 每天產生一個檔案 --> <appender name="TEST-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 檔案路徑 --> <file>${TEST_FILE_PATH}</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 檔名稱 --> <fileNamePattern>${TEST_FILE_PATH}/info.%d{yyyy-MM-dd}.log</fileNamePattern> <!-- 檔案最大儲存歷史數量 --> <MaxHistory>100</MaxHistory> </rollingPolicy> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>${PATTERN}</pattern> </layout> </appender> <root level="info"> <appender-ref ref="TEST-FILE" /> </root> </springProfile> <!-- 生產環境 --> <springProfile name="prod"> <appender name="PROD_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${PRO_FILE_PATH}</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${PRO_FILE_PATH}/warn.%d{yyyy-MM-dd}.log</fileNamePattern> <MaxHistory>100</MaxHistory> </rollingPolicy> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>${PATTERN}</pattern> </layout> </appender> <root level="warn"> <appender-ref ref="PROD_FILE" /> </root> </springProfile> </configuration>
3、log4j2配置
首先去除logback依賴包並新增log4j2的依賴包
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <!-- 使用log4j2 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency>
例如:
然後在application.properties檔案中配置:
logging.config=classpath:log4j2-dev.xml
例如:
最後配置xml:log4j2-dev.xml,注意:在springboot中log4j不支援如2中的配置,根據不同環境需要配置不同xml,比如spring.profiles.active=prod,則需要log4j2-prod.xml檔案,並配置相應的內容。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<properties>
<!-- 檔案輸出格式 -->
<property name="PATTERN">%d{yyyy-MM-dd HH:mm:ss.SSS} |-%-5level [%thread] %c [%L] -| %msg%n</property>
</properties>
<appenders>
<Console name="CONSOLE" target="system_out">
<PatternLayout pattern="${PATTERN}" />
</Console>
</appenders>
<loggers>
<logger name="com.roncoo.education" level="debug" />
<root level="info">
<appenderref ref="CONSOLE" />
</root>
</loggers>
</configuration>