springboot 日志管理

问题说明

如果日志打印成文件,需要配置文件路径,如下所示:

  

问题:在uat和prod中我需要配置不同路径,难道每次打包都修改logback-spring.xml文件?

解决方法

https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-custom-log-levels
查看文档发现使用可以读取环境变量中的值,logback.xml加载早于application.yml,需改用logback-spring.xml实现日志配置。=实测logback-spring.xml依然无法获取application.yml中的配置信息,需将配置信息放在bootstrap.yml中=。

根据文档修改配置

  1. logback.xml重命名为logback-spring.xml,将property标签注释,并新增springProperty标签:
 
 
  1. 在bootstrap.yml中新增配置

spring:
  profiles:
    active: prod
    
---
# 开发环境
spring:
  profiles: dev
  
log:
  path: E:/log/
---
---
# 生产环境
spring:
  profiles: prod
  
log:
  path: /home/logs
---

问题说明

在开始和测试阶段使用命令指定日志文件;现在加入logback-spring.xml管理日志,1>/home/eureka.log也不在需要。

java  -Dserver.port=8761  -jar /home/xxx.jar 1>/home/eureka.log 2>&1 &

去除文本后重新启动项目,发现日志会打印在控制台上。

解决方法

参考:https://blog.csdn.net/qq_34354257/article/details/90514245
将日志指定到 /dev/null 目录下,目录说明如下:

/dev/null个设备文件,它的特殊之处在于,可以写入数据,但读取不到任何东西。所以我们可以理解为它把写入的数据全部丢弃了。

最终项目启动命令如下:

nohup java   -jar /home/xxx.jar 1>/dev/null 2>&1  &

附件

logback.xml








    

    logback
    
    
    
 



    
    
        
        
            
            %d{yyyy-MM-dd HH:mm:ss.SSS} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%t] %-40.40logger{39} : %m%n
        
    


    
    
        
        ${log.path}/log_debug.log
        
        
            %d{yyyy-MM-dd HH:mm:ss}: %p [%t] %c{1} %F:%L - %m%n
            UTF-8 
        
        
        
            
            ${log.path}/debug/log-debug-%d{yyyy-MM-dd}.%i.log.zip
            
                100MB
            
            
            15
        
    

  

    
    
        
        ${log.path}/log_error.log
        
        
            ${log.path}/debug/log-debug-%d{yyyy-MM-dd}.log
            UTF-8 
        
        
        
            ${log.path}/error/log-error-%d{yyyy-MM-dd}.%i.log.zip
            
                100MB
            
            
            15
        
        
        
            ERROR
            ACCEPT
            DENY
        
    

    
    
    
    
	 


    

    
    
        
         
			
        
    

	
	
        
			
			
        
    


你可能感兴趣的:(java)