原因:SpringBoot默認使用slf4j日志,引入其他框架的時候,只需要把這個框架依賴的日志框架排除掉;
而我今天想引入log4j的時候,pom文件一直報錯,顯示找不到log4j的jar包,應當是2.0.3的springboot版本的原因;
在此就沒再繼續引入,而是采用了SpringBoot使用的slf4j的日志,有機會的話再測一下log4j和slf4j兩種日志的效率對比。
一、application.yml中配置日志打印級別,默認是info(也可選擇不同目錄):
#slf4j日志配置
logging:
# 配置級別
level:
#分包配置級別,即不同的目錄下可以使用不同的級別
com.sblueice.controller: debug
二、logback.xml中所有配置:
配置打印文件的路徑(一天一個,保存30天):
<!-- 開發、測試環境 --> <springProfile name="dev,test"> <!-- 定義日志存儲的路徑,不要配置相對路徑 --> <property name="FILE_PATH" value="E:/temp0918/SpringBoot-log/cccf.%d{yyyy-MM-dd}.%i.log" /> </springProfile>
配置打印sql日志:
<logger name="com.sblueice.mapper.UserMapper" level="DEBUG" />
<?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- 格式化輸出:%date表示日期,%thread表示線程名,%-5level:級別從左顯示5個字符寬度 %msg:日志消息,%n是換行符--> <property name="LOG_PATTERN" value="%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" /> <!-- 開發、測試環境 --> <springProfile name="dev,test"> <!-- 定義日志存儲的路徑,不要配置相對路徑 --> <property name="FILE_PATH" value="E:/temp0918/SpringBoot-log/cccf.%d{yyyy-MM-dd}.%i.log" /> </springProfile> <!-- 生產環境 --> <springProfile name="pro"> <!-- 定義日志存儲的路徑,不要配置相對路徑 --> <property name="FILE_PATH" value="/user/lib/cccf/logs/cccf.%d{yyyy-MM-dd}.%i.log" /> </springProfile> <!-- 控制台輸出日志 --> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <!-- 按照上面配置的LOG_PATTERN來打印日志 --> <pattern>${LOG_PATTERN}</pattern> </encoder> </appender> <!--每天生成一個日志文件,保存30天的日志文件。rollingFile是用來切分文件的 --> <appender name="rollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern> ${FILE_PATH} </fileNamePattern> <!-- keep 30 days' worth of history --> <maxHistory>30</maxHistory> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <!-- 日志文件的最大大小 --> <maxFileSize>10MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> <encoder> <pattern>${LOG_PATTERN}</pattern> </encoder> </appender> <!-- project default level --> <logger name="com.hiynn.cccf" level="INFO" /> <!-- 日志輸出級別 --> <root level="INFO"> <appender-ref ref="console" /> <appender-ref ref="rollingFile" /> </root> <!--myibatis log configure--> <logger name="com.sblueice.mapper.UserMapper" level="DEBUG" /> </configuration>
三、controller層輸出打印日志(Java怎么沒有着色。。。。)
package com.sblueice.controller; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.sblueice.services.UserService; /** * * @author shaoz * @Date: 2019/10/09 * */ @Controller public class UserController { Logger logger = LoggerFactory.getLogger(getClass()); /** * * @Title: testLog * @Description: TODO(測試springboot自帶的日志打印) * @param: @return * @return: String * @throws */ @RequestMapping("/testLog") @ResponseBody public String testLog() { // 級別由低到高 trace<debug<info<warn<error logger.trace("這是一個trace日志..."); logger.debug("這是一個debug日志..."); // SpringBoot默認是info級別,只會輸出info及以上級別的日志 logger.info("這是一個info日志..."); logger.warn("這是一個warn日志..."); logger.error("這是一個error日志..."); String str = "https://www.cnblogs.com/steveshao/"; logger.info("======歡迎訪問無腳鳥的博客:{}\n", str); return null; } }
以上就是今天SpringBoot打印日志的過程,也借鑒了好多人的東西,目前找不到借鑒的鏈接了,如果有同學覺得我摘抄了您的原文,請聯系我給您添加上原文鏈接哈。