logback.xml动态配置程序路径

目录

1.普通java程序

2.spring boot应用


1.普通java程序

如下配置的logback.xml




    
    
    
    
    

    
        
            ${LOG_PATTERN}
            ${LOG_CHARSET}
        
    

    
        ${LOGS_HOME}/${SUB_LOG_HOME}/logback-demo.log
        
            ${LOG_PATTERN}
            ${LOG_CHARSET}
        
        
            ${LOGS_HOME}/${SUB_LOG_HOME}/logback-demo-%d{yyyy-MM-dd}.log
            30
        
    

    
        ${LOGS_HOME}/${SUB_LOG_HOME}/logback-demo.error.log
        
            ${LOGS_HOME}/${SUB_LOG_HOME}/logback-demo-%d{yyyy-MM-dd}.error.log
            20
        
        
            ${LOG_PATTERN}
            true
        
        
            ERROR
            ACCEPT
            DENY
        
    

    
        
        
        
    

property标签由name和value组成,上边定义的name可以在下边通过${name}引用。

value的值可以直接在xml中写死,也可以通过程序启动时候通过jvm虚拟机参数配置来传入,比如此处是-DSUB_LOG_HOME=xxx。

idea中配置:

logback.xml动态配置程序路径_第1张图片


2.spring boot应用

spring boot应用中将logback-spring.xml放置在resources目录,内容如下:




    
    

    
    
    
    

    
    
    
    
    
    

    
        
            ${CONSOLE_LOG_PATTERN}
        
    
    
        ${LOG_HOME}/${SUB_LOG_HOME}/${LOG_NAME}.log
        
            ${LOG_HOME}/${SUB_LOG_HOME}/${LOG_NAME}.log-%d{yyyy-MM-dd}.%i.zip
            20
            100MB
        
        
            ${FILE_LOG_PATTERN}
            true
        
    
    
        ${LOG_HOME}/${SUB_LOG_HOME}/${LOG_NAME}.error.log
        
            ${LOG_HOME}/${SUB_LOG_HOME}/${LOG_NAME}.error.log-%d{yyyy-MM-dd}.%i.zip
            20
            100MB
        
        
            ${FILE_LOG_PATTERN}
            true
        
        
            ERROR
            ACCEPT
            DENY
        
    

    
        ${LOG_HOME}/${SUB_LOG_HOME}/import/${LOG_NAME}.log
        
            ${FILE_LOG_PATTERN}
            true
        
        
            ${LOG_HOME}/${SUB_LOG_HOME}/import/${LOG_NAME}-%d{yyyy-MM-dd}.log
            7
        
    

    
        
    

    
    

    
        
        
        
    

该配置文件中除了使用还使用了其中source为引用的spring配置中的变量,比如此处是logback.logPath和logback.subLogPath这两个值的传入可以通过spring boot配置文件传入,也可以通过程序启动时候动态传入,比如--logback.subLogPath=xxx

 

你可能感兴趣的:(java)