菜单开关

周梦康 发表于 2022-01-09 17 次浏览 标签 : SpringBoot

因为最近发现线上服务器日志老是满,后来发现因为除了 logback 里面配置了终端输出。服务器的启动参数类似于

nohup java -jar xxxx.jar &> java.log &

这会导致如果服务长期不部署,那么标准输出和错误输出的内容就会堆积,因为它不受 springboot logback的滚动机制控制。

类似于下面这样

<configuration> 
   <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
      <encoder> 
         <pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern> 
      </encoder> 
   </appender> 

   <root level="INFO"> 
      <appender-ref ref="STDOUT" />
   </root> 
</configuration>

方案1

application.properties中添加配置logging.level.root=debug,然后将标准输出改为

   <root level="DEBUG"> 
      <appender-ref ref="STDOUT" />
   </root> 

预发和线上启动的时候,可以在启动脚本里通过--logging.level.root=info来修改application.properties里面的配置。

nohup java -jar xxxx.jar --logging.level.root=info &> java.log &

Springboot 命令注入属性 https://www.cnblogs.com/wuxinshui/p/10983942.html

方案2

logback 也支持 springboot profile(多环境配置)
同上在application.properties配置

spring.profiles.active=dev

然后修改 logback

<springProfile name="dev">
    <root level="INFO"> 
      <appender-ref ref="STDOUT" />
   </root> 
</springProfile>
<springProfile name="prod">
    <root level="INFO"> 
      // ...删掉 STDOUT 的配置,保留其他日志配置
   </root> 
</springProfile>

预发和线上启动的时候增加参数--spring.profiles.active=prod

nohup java -jar xxxx.jar --spring.profiles.active=prod &> java.log &

👇 下面是我的公众号,高质量的博文我会第一时间同步到公众号,给个关注吧!

评论列表