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的。
两个地方:
- 使用
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component; import com.cetc.cks.constant.Constant; import net.sf.json.JSONObject; /**
* 管理员重置密码或给某用户解绑做日志管理
*/
@Aspect
@Component
public class AspectReset { private final static Logger log = LoggerFactory.getLogger(AspectReset.class); // 。。。
}
点击展开
- 配置
在src/main/resource目录下添加logback.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="false"> <!-- Log file path ../../../../../../../ to disk root -->
<property name="log.path" value="logs" /> <!-- Spring boot default -->
<include resource="org/springframework/boot/logging/logback/defaults.xml" /> <!-- Console log output -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{MM-dd HH:mm:ss.SSS} %-5level [%logger{50}] - %msg%n</pattern>
</encoder>
</appender> <!-- Log file debug output -->
<appender name="debug" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>d:/logs/debug.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>d:/logs/debug.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
<maxFileSize>50MB</maxFileSize>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n</pattern>
</encoder>
</appender> <!-- Log file error output -->
<appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>d:/errorlogs/error.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>d:/errorlogs/error.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
<maxFileSize>50MB</maxFileSize>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
</appender> <!-- Level: FATAL 0 ERROR 3 WARN 4 INFO 6 DEBUG 7 -->
<root level="INFO">
<appender-ref ref="console" />
<appender-ref ref="debug" />
<appender-ref ref="error" />
</root> <logger name="sun.rmi.loader" level="WARN"/>
<logger name="com.zaxxer.hikari" level="WARN"/>
<logger name="org.springframework" level="WARN"/>
<logger name="org.apache.http" level="WARN"/>
<logger name="com.ulisesbocchio" level="WARN"/>
<logger name="com.netflix.discovery" level="WARN"/>
</configuration>
点击展开
项目运行之后,在D盘logs目录下会出现
它以天为单位将每天的日志文件打成压缩包,具体参照logback.xml文件中内容。