一、背景描述
由于MAC环境本地启动项目存在目前权限问题,需要与测试环境不一致只,为了不每次修改代码都修改本地目录,则想配置日志目录的多环境支持
二、实现方案
1、application-local.yml配置
logging:config: classpath:logback-spring.xml# 根据自己springboot版本配置,ruoyi是2.5.15file:path: /Users/marion/data
2、ruoyi配置logback-spring.xml
在 Logback 配置文件中,您可以使用 <statusListener>
元素来打印 Logback 变量的值。
以下是一个示例,在该示例中,我们通过配置一个 <statusListener>
元素来将 Logback 变量打印到控制台:
在上述示例中,我们使用 class
属性指定了 ch.qos.logback.core.status.OnConsoleStatusListener
类作为状态监听器。这个状态监听器会在启动时将日志输出到控制台,并包括 Logback 变量的值。
当您运行应用程序时,请确保查看应用程序的日志输出。您应该能够看到 Logback 变量的值以及其他启动期间的日志信息。
另外,如果您只想打印特定的变量,而不是所有变量,您可以自定义一个状态监听器,并重写 addStatusEvent()
方法来控制打印的变量。
请注意,运行时打印的变量值仅在应用程序启动时才可见。如果您希望在应用程序运行时动态访问 Logback 变量的值,您需要编写代码来获取和处理这些值。
<?xml version="1.0" encoding="UTF-8"?>
<configuration><!--打印 Logback 变量的值--><statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener" /><springProperty scope="context" name="logPath" source="logging.file.path"/><!-- 日志存放路径 --><property name="log.path" value="${logPath}/logs/ruoyi/logs" /><!-- 日志输出格式 --><property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" /><!-- 控制台输出 --><appender name="console" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>${log.pattern}</pattern></encoder></appender><!-- 系统日志输出 --><appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${log.path}/sys-info.log</file><!-- 循环政策:基于时间创建日志文件 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 日志文件名格式 --><fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log</fileNamePattern><!-- 日志最大的历史 60天 --><maxHistory>60</maxHistory></rollingPolicy><encoder><pattern>${log.pattern}</pattern></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 过滤的级别 --><level>INFO</level><!-- 匹配时的操作:接收(记录) --><onMatch>ACCEPT</onMatch><!-- 不匹配时的操作:拒绝(不记录) --><onMismatch>DENY</onMismatch></filter></appender><appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${log.path}/sys-error.log</file><!-- 循环政策:基于时间创建日志文件 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 日志文件名格式 --><fileNamePattern>${log.path}/sys-error.%d{yyyy-MM-dd}.log</fileNamePattern><!-- 日志最大的历史 60天 --><maxHistory>60</maxHistory></rollingPolicy><encoder><pattern>${log.pattern}</pattern></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 过滤的级别 --><level>ERROR</level><!-- 匹配时的操作:接收(记录) --><onMatch>ACCEPT</onMatch><!-- 不匹配时的操作:拒绝(不记录) --><onMismatch>DENY</onMismatch></filter></appender><!-- 用户访问日志输出 --><appender name="sys-user" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${log.path}/sys-user.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 按天回滚 daily --><fileNamePattern>${log.path}/sys-user.%d{yyyy-MM-dd}.log</fileNamePattern><!-- 日志最大的历史 60天 --><maxHistory>60</maxHistory></rollingPolicy><encoder><pattern>${log.pattern}</pattern></encoder></appender><!-- 系统模块日志级别控制 --><logger name="com.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>
参考资料
Spring boot 配置多环境的logback_logback多环境配置_哲学是个什么东东的博客-CSDN博客