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的。
两个地方:
- 使用
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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文件
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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文件中内容。