很多时候项目的日志只保存了一个文件,时间长了往往十几个G,看着就让人头大,查起来很慢很慢,所以要及时进行日志的切割,其实方式比较简单,现成的插件包,springboot里面配置几下就好了。
pom
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.6.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent>
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <!-- 排除掉 内置 Tomcat --> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> <!-- 内置服务器使用 Undertow --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-undertow</artifactId> </dependency>
我这里没有使用tomcat,而是用了undertow性能还是不错的
undertow也可以进行application.properties配置:
server.port=6543 server.undertow.io-threads=4 server.undertow.worker-threads=20 server.undertow.buffer-size=1024 server.undertow.direct-buffers=true
根据cpu的核数和线程数进行调优
日志切割的配置:
logging.path=./ ##日志路径的根目录 logging.file=${logging.path}msg ##表示文件路径
另外还有一个重要文件logback-spring.xml放在sources下就可以
<?xml version="1.0" encoding="UTF-8"?> <!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 --> <!-- scan:当此属性设置为true时,配置文档如果发生改变,将会被重新加载,默认值为true --> <!-- scanPeriod:设置监测配置文档是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。 当scan为true时,此属性生效。默认的时间间隔为1分钟。 --> <!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 --> <configuration debug="true"> <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。 --> <!--<property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}"/>--> <property name="LOG_FILE" value="${LOG_FILE}"/> <!--1. 输出到控制台--> <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{HH:mm:ss.SSS} %-5level %logger{36} [%line] - %msg%n</pattern> </encoder> </appender> <!--2. 输出到文档--> <!-- 2.1 level为 DEBUG 日志,时间滚动输出 --> <appender name="R" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 正在记录的日志文档的路径及文档名 --> <!--<File>${LOG_FILE}</File>--> <!--日志文档输出格式--> <encoder> <pattern>%d{HH:mm:ss.SSS} %-5level %logger{36} [%line] - %msg%n</pattern> </encoder> <!-- 日志记录器的滚动策略,按日期,按大小记录 --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.log </fileNamePattern> <maxHistory>15</maxHistory> </rollingPolicy> </appender> <logger name="com.message.part.msg" level="info"/> <logger name="org.codehaus" level="info"/> <logger name="org.apache" level="info"/> <logger name="org.springframework" level="info"/> <logger name="com.alibaba" level="debug"> <appender-ref ref="stdout"/> </logger> <logger name="com.springboot" level="debug"/> <root level="info"> <appender-ref ref="stdout"/> <appender-ref ref="R"/> </root> </configuration>
项目截图
这样就好,启动一下,日志就按照天切割了。