springboot日志切割配置,undertow服务调优

很多时候项目的日志只保存了一个文件,时间长了往往十几个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>

项目截图

这样就好,启动一下,日志就按照天切割了。

猜你喜欢

转载自blog.csdn.net/airyearth/article/details/107455776