spring項目放到tomcat中運行,我們可以在tomcat的logs文件夾下面生成log文件。那么我們的springboot項目沒有放到系統安裝的tomcat容器中,怎么設置生成log文件呢?
有兩種方式:
1.使用log4j
使用log4j,在application.properties文件中配置
logging.path = d:/myLog
然后項目運行之后,會在d盤生成一個myLog的文件夾,里面有一個叫spring的文件,生成的log記錄都在該文件里。(不推薦使用)
2.使用SLF4J/logback
springboot是默認使用SLF4J/logback的。
兩個地方:
- 使用

1 import org.aspectj.lang.annotation.AfterReturning; 2 import org.aspectj.lang.annotation.Aspect; 3 import org.aspectj.lang.annotation.Pointcut; 4 import org.slf4j.Logger; 5 import org.slf4j.LoggerFactory; 6 import org.springframework.stereotype.Component; 7 8 import com.cetc.cks.constant.Constant; 9 10 import net.sf.json.JSONObject; 11 12 /** 13 * 管理員重置密碼或給某用戶解綁做日志管理 14 */ 15 @Aspect 16 @Component 17 public class AspectReset { 18 19 private final static Logger log = LoggerFactory.getLogger(AspectReset.class); 20 21 // 。。。 22 }
- 配置
在src/main/resource目錄下添加logback.xml文件

1 <?xml version="1.0" encoding="UTF-8"?> 2 <configuration debug="false" scan="false"> 3 4 <!-- Log file path ../../../../../../../ to disk root --> 5 <property name="log.path" value="logs" /> 6 7 <!-- Spring boot default --> 8 <include resource="org/springframework/boot/logging/logback/defaults.xml" /> 9 10 <!-- Console log output --> 11 <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> 12 <encoder> 13 <pattern>%d{MM-dd HH:mm:ss.SSS} %-5level [%logger{50}] - %msg%n</pattern> 14 </encoder> 15 </appender> 16 17 <!-- Log file debug output --> 18 <appender name="debug" class="ch.qos.logback.core.rolling.RollingFileAppender"> 19 <file>d:/logs/debug.log</file> 20 <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> 21 <fileNamePattern>d:/logs/debug.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern> 22 <maxFileSize>50MB</maxFileSize> 23 <maxHistory>30</maxHistory> 24 </rollingPolicy> 25 <encoder> 26 <pattern>%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n</pattern> 27 </encoder> 28 </appender> 29 30 <!-- Log file error output --> 31 <appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender"> 32 <file>d:/errorlogs/error.log</file> 33 <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> 34 <fileNamePattern>d:/errorlogs/error.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern> 35 <maxFileSize>50MB</maxFileSize> 36 <maxHistory>30</maxHistory> 37 </rollingPolicy> 38 <encoder> 39 <pattern>%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n</pattern> 40 </encoder> 41 <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> 42 <level>ERROR</level> 43 </filter> 44 </appender> 45 46 <!-- Level: FATAL 0 ERROR 3 WARN 4 INFO 6 DEBUG 7 --> 47 <root level="INFO"> 48 <appender-ref ref="console" /> 49 <appender-ref ref="debug" /> 50 <appender-ref ref="error" /> 51 </root> 52 53 <logger name="sun.rmi.loader" level="WARN"/> 54 <logger name="com.zaxxer.hikari" level="WARN"/> 55 <logger name="org.springframework" level="WARN"/> 56 <logger name="org.apache.http" level="WARN"/> 57 <logger name="com.ulisesbocchio" level="WARN"/> 58 <logger name="com.netflix.discovery" level="WARN"/> 59 </configuration>
項目運行之后,在D盤logs目錄下會出現
它以天為單位將每天的日志文件打成壓縮包,具體參照logback.xml文件中內容。