关于tomcat:Tomcat-下部署若依单体应用可观测最佳实践
实现目标采集指标信息采集链路信息采集日志信息采集 RUM 信息会话重放 即用户拜访前端的一系列过程的会话录制信息,包含点击某个按钮、操作界面、停留时间等,有助于客户真是用意、操作复现版本信息Tomcat (9.0.81)Springboot(2.6.2)JDK (>=8)DDTrace (>=1.0)特地阐明:如果是 Springboot 我的项目,Tomcat 大版本需与 Springboot 内置的 Tomcat 大版本统一,否则可能会存在启动异样。若依的单体利用下载源码若依的单体利用:https://gitee.com/y_project/RuoYi/tree/master git clone https://gitee.com/y_project/RuoYi.git移除外部 tomcat调整我的项目根目录的 pom.xml ...... <dependencyManagement> <dependencies> <!-- SpringBoot的依赖配置--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>2.5.15</version> <type>pom</type> <scope>import</scope> <!-- 移除外部 tomcat --> <exclusions> <exclusion> <artifactId>spring-boot-starter-tomcat</artifactId> <groupId>org.springframework.boot</groupId> </exclusion> </exclusions> </dependency>......war 输入调整 ruoyi-admin 模块下的 pom.xml 文件 <packaging>war</packaging>调整日志在 ruoyi-admin/src/main/resources 新增 logback-spring.xml,原文如下: <?xml version="1.0" encoding="UTF-8"?><configuration> <!-- 日志寄存门路 --> <property name="log.path" value="/home/root/ruoyi/logs" /> <!-- 日志输入格局 --> <property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - [%method,%line] %X{dd.service} %X{dd.trace_id} %X{dd.span_id} - %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="debug"> <appender-ref ref="file_info" /> <appender-ref ref="file_error" /> </root> <!--零碎用户操作日志--> <logger name="sys-user" level="info"> <appender-ref ref="sys-user"/> </logger></configuration> 编译进入我的项目根目录执行以下命令进行编译: ...