spring boot 日誌log4j2
阿新 • • 發佈:2018-12-18
最近專案中 用了spring boot 在搞日誌的時候發現 log4j.properties部分生效 一部分沒生效,比如 日誌檔案 死活都沒有
後來發現 pom.xml中 我們用的是 log4j2
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!--去掉內建的log--> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency>
然後沒辦法 於是 只能 用 log4j2了
在 spring boot 的 yml中配置:
logging:
config: classpath:log4j2.xml
然後 在 resources 目錄下 建立 log4j2.xml ps:和application檔案同一級 。
log4j2.xml檔案配置如下:
<?xml version="1.0" encoding="UTF-8" ?> <configuration status="WARN"> <!--全域性引數--> <Properties> <Property name="pattern">%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n</Property> </Properties> <appenders> <Console name="console" target="SYSTEM_OUT"> <JsonLayout/> <!--使用json格式輸出--> </Console> </appenders> <Loggers> <Root level="DEBUG"> <AppenderRef ref="console"></AppenderRef> <AppenderRef ref="rolling_file"></AppenderRef> <AppenderRef ref="file"></AppenderRef> </Root> <!--只將com.kk.springboot.demo寫到檔案--> <!--<Logger name="com.example.demo" level="debug">--> <!--<AppenderRef ref="file"></AppenderRef>--> <!--</Logger>--> </Loggers> <Appenders> <Console name="console" target="SYSTEM_OUT" follow="true"> <!--控制檯只輸出level及以上級別的資訊--> <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/> <PatternLayout> <Pattern>${pattern}</Pattern> </PatternLayout> </Console> <!-- 同一來源的Appender可以定義多個RollingFile,定義按天儲存日誌 --> <RollingFile name="rolling_file" fileName="/var/log/tomcat8/cboard.log" filePattern="/var/log/tomcat8/%d{yyyy-MM-dd}.log"> <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/> <PatternLayout> <Pattern>${pattern}</Pattern> </PatternLayout> <Policies> <TimeBasedTriggeringPolicy interval="1"/> <!--<SizeBasedTriggeringPolicy size="1 KB"/>--> </Policies> </RollingFile> <File name="file" fileName="/var/log/tomcat8/error.log"> <!--<!–控制檯只輸出level及以上級別的資訊(onMatch),其他的直接拒絕(onMismatch)–>--> <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/> <PatternLayout> <Pattern>${pattern}</Pattern> </PatternLayout> </File> </Appenders> </configuration>
然後發現 pom.xml檔案引入的其他 jar包 由於版本問題 不能使用 log4j2.xml 於是只能把原先的 log4j.properties檔案加上。
spring boot 日誌搞定。