logback.xml动态配置程序路径的操作

时间:2021-05-19

1.普通java程序

如下配置的logback.xml

<?xml version="1.0" encoding="UTF-8"?><configuration> <property name="LOGS_HOME" value="/opt/program/app/logback-demo/logs"/> <!-- 该值由启动程序时候动态传入 --> <property name="SUB_LOG_HOME" value="" /> <property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{25} - %msg%n"/> <property name="LOG_CHARSET" value="UTF-8"/> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>${LOG_PATTERN}</pattern> <charset>${LOG_CHARSET}</charset> </encoder> </appender> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOGS_HOME}/${SUB_LOG_HOME}/logback-demo.log</file> <encoder> <pattern>${LOG_PATTERN}</pattern> <charset>${LOG_CHARSET}</charset> </encoder> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOGS_HOME}/${SUB_LOG_HOME}/logback-demo-%d{yyyy-MM-dd}.log</fileNamePattern> <maxHistory>30</maxHistory> </rollingPolicy> </appender> <appender name="ERRORFILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOGS_HOME}/${SUB_LOG_HOME}/logback-demo.error.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOGS_HOME}/${SUB_LOG_HOME}/logback-demo-%d{yyyy-MM-dd}.error.log</fileNamePattern> <maxHistory>20</maxHistory> </rollingPolicy> <encoder> <pattern>${LOG_PATTERN}</pattern> <immediateFlush>true</immediateFlush> </encoder> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> </appender> <root level="info"> <appender-ref ref="STDOUT"/> <appender-ref ref="FILE"/> <appender-ref ref="ERRORFILE"/> </root> </configuration>

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

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

idea中配置:

2.spring boot应用

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

<?xml version="1.0" encoding="UTF-8"?><configuration xmlns="http://ch.qos.logback/xml/ns/logback" xmlns:xsi="http://.ruoyi" level="info"/> <!-- Spring日志级别控制 --> <logger name="org.springframework" level="warn"/> <root level="info"> <appender-ref ref="console"/> </root> <!--系统操作日志--> <root level="info"> <appender-ref ref="file_info"/> <appender-ref ref="file_error"/> </root> <!--系统用户操作日志--> <logger name="sys-user" level="info"> <appender-ref ref="sys-user"/> </logger></configuration>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章