
windows部署Skywalking教程请看Windows11部署SkyWalking-CSDN博客一、添加依赖!-- SkyWalking Java Agent -- dependency groupIdorg.apache.skywalking/groupId artifactIdapm-toolkit-logback-1.x/artifactId version9.0.0/version /dependency二、修改日志文件配置将原来每个appender节点下的encoder节点注释改成如下skywalking自定义类的格式类org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout!-- encoder classch.qos.logback.classic.encoder.PatternLayoutEncoder charsetUTF-8-- !-- pattern${CONSOLE_LOG_PATTERN}/pattern-- !-- /encoder-- layout classorg.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout pattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%tid] [%thread] %-5level %logger{36} - %msg%n/pattern /layout修改完后的日志文件logback-spring.xml如下。?xml version1.0 encodingUTF-8? configuration scantrue scanPeriod60 seconds debugfalse springProperty scopecontext nameapplicationName sourcespring.application.name defaultValuegoods-service/ !-- 单个日志文件的最大尺寸 -- springProperty scopecontext namemaxFileSize sourcelogging.file.max-size defaultValue10MB/ !-- 日志保留时长 (天) -- springProperty scopecontext namemaxHistory sourcelogging.file.max-history defaultValue30/ !-- 日志文件路径 -- springProperty scopecontext namelogDir sourcelogging.path defaultValue./logs/ contextName${applicationName}/contextName !-- 彩色日志 -- !-- 彩色日志依赖的渲染类 -- conversionRule conversionWordclr converterClassorg.springframework.boot.logging.logback.ColorConverter/ conversionRule conversionWordwex converterClassorg.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter/ !-- 彩色日志格式 -- property nameCONSOLE_LOG_PATTERN value%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(${PID:- }) %clr(---){faint} %clr([%10t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wex/ property nameFILE_LOG_PATTERN value%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${PID:- } --- [%t] %-40.40logger{39} : %m%n%wex/ !-- 控制台输出 -- appender nameSTDOUT classch.qos.logback.core.ConsoleAppender !-- encoder classch.qos.logback.classic.encoder.PatternLayoutEncoder charsetUTF-8-- !-- pattern${CONSOLE_LOG_PATTERN}/pattern-- !-- /encoder-- layout classorg.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout pattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%tid] [%thread] %-5level %logger{36} - %msg%n/pattern /layout /appender !-- info日志 appender -- appender nameINFO classch.qos.logback.core.rolling.RollingFileAppender rollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicy !-- 按天回滚 daily -- fileNamePattern${logDir}/info-%d{yyyy-MM-dd}-%i.log/fileNamePattern !-- 日志最大的历史 180天 -- maxHistory${maxHistory}/maxHistory timeBasedFileNamingAndTriggeringPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedFNATP !-- maxFileSize:这是活动文件的大小默认值是10MB这里设置为20MB -- maxFileSize${maxFileSize}/maxFileSize /timeBasedFileNamingAndTriggeringPolicy /rollingPolicy !-- encoder classch.qos.logback.classic.encoder.PatternLayoutEncoder charsetUTF-8-- !-- pattern${FILE_LOG_PATTERN}/pattern-- !-- /encoder-- layout classorg.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout pattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%tid] [%thread] %-5level %logger{36} - %msg%n/pattern /layout filter classch.qos.logback.classic.filter.LevelFilter !-- 只打印info日志 -- levelINFO/level onMatchACCEPT/onMatch onMismatchDENY/onMismatch /filter /appender !-- DEBUG日志 appender -- appender nameDEBUG classch.qos.logback.core.rolling.RollingFileAppender rollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicy !-- 按天回滚 daily -- fileNamePattern${logDir}/debug-%d{yyyy-MM-dd}-%i.log/fileNamePattern !-- 日志最大的历史 180天 -- maxHistory${maxHistory}/maxHistory timeBasedFileNamingAndTriggeringPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedFNATP !-- maxFileSize:这是活动文件的大小默认值是10MB这里设置为20MB -- maxFileSize${maxFileSize}/maxFileSize /timeBasedFileNamingAndTriggeringPolicy /rollingPolicy !-- encoder classch.qos.logback.classic.encoder.PatternLayoutEncoder charsetUTF-8-- !-- pattern${FILE_LOG_PATTERN}/pattern-- !-- /encoder-- layout classorg.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout pattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%tid] [%thread] %-5level %logger{36} - %msg%n/pattern /layout filter classch.qos.logback.classic.filter.LevelFilter !-- 只打印DEBUG日志 -- levelDEBUG/level onMatchACCEPT/onMatch onMismatchDENY/onMismatch /filter /appender !-- WARN日志 appender -- appender nameWARN classch.qos.logback.core.rolling.RollingFileAppender rollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicy !-- 按天回滚 daily -- fileNamePattern${logDir}/warn-%d{yyyy-MM-dd}-%i.log/fileNamePattern !-- 日志最大的历史 180天 -- maxHistory${maxHistory}/maxHistory timeBasedFileNamingAndTriggeringPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedFNATP !-- maxFileSize:这是活动文件的大小默认值是10MB这里设置为20MB -- maxFileSize${maxFileSize}/maxFileSize /timeBasedFileNamingAndTriggeringPolicy /rollingPolicy !-- encoder classch.qos.logback.classic.encoder.PatternLayoutEncoder charsetUTF-8-- !-- pattern${FILE_LOG_PATTERN}/pattern-- !-- /encoder-- layout classorg.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout pattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%tid] [%thread] %-5level %logger{36} - %msg%n/pattern /layout filter classch.qos.logback.classic.filter.LevelFilter !-- 只打印WARN日志 -- levelWARN/level onMatchACCEPT/onMatch onMismatchDENY/onMismatch /filter /appender !-- error 日志 appender -- appender nameERROR classch.qos.logback.core.rolling.RollingFileAppender rollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicy !-- 按天回滚 daily -- fileNamePattern${logDir}/error-%d{yyyy-MM-dd}-%i.log/fileNamePattern !-- 日志最大的历史 180天 -- maxHistory${maxHistory}/maxHistory timeBasedFileNamingAndTriggeringPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedFNATP !-- maxFileSize:这是活动文件的大小默认值是10MB这里设置为20MB -- maxFileSize${maxFileSize}/maxFileSize /timeBasedFileNamingAndTriggeringPolicy /rollingPolicy !-- encoder classch.qos.logback.classic.encoder.PatternLayoutEncoder charsetUTF-8-- !-- pattern${FILE_LOG_PATTERN}/pattern-- !-- /encoder-- layout classorg.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout pattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%tid] [%thread] %-5level %logger{36} - %msg%n/pattern /layout filter classch.qos.logback.classic.filter.LevelFilter !-- 只打印错误日志 -- levelERROR/level onMatchACCEPT/onMatch onMismatchDENY/onMismatch /filter /appender !-- 开发环境日志输出到控制台 -- springProfile namedev !--控制台和日志文件输出级别-- root levelINFO appender-ref refSTDOUT/ /root /springProfile !-- 生产环境/测试环境日志输出到文件 -- springProfile nameprod|test root levelINFO appender-ref refINFO/ appender-ref refERROR/ !-- appender-ref refDEBUG/-- appender-ref refWARN/ appender-ref refSW_APPENDER/ /root /springProfile /configuration三、启动设置环境变量3.1、在启动时指定环境变量参数及值-javaagent:D:\tools\apache-skywalking-java-agent-9.0.0\skywalking-agent\skywalking-agent.jar -Dskywalking.agent.service_namegoods-service -Dskywalking.collector.backend_service127.0.0.1:11800 -Dskywalking.logging.levelINFO3.2、环境变量解释参数描述-javaagent:D:\tools\apache-skywalking-java-agent-9.0.0\skywalking-agent\skywalking-agent.jar指定启动探针jar包地址-Dskywalking.agent.service_namegoods-service指定skywalking里代理服务名称-Dskywalking.collector.backend_service127.0.0.1:11800指定skywalking收集器的服务IP与端口号-Dskywalking.logging.levelINFO指定日志级别学习下并模拟JavaAgent探针-CSDN博客文章摘要Javaagent是一种通过-javaagent参数在JVM启动时加载的代理工具能够在main方法执行前拦截类加载并修改字节码。实现步骤包括1创建包含Premain-Class的MANIFEST.MF文件2编写实现premain方法的代理类3使用ClassFileTransformer接口和Javassist等工具修改目标类。示例演示了如何统计方法耗时通过代理jar包在SpringBoot应用启动时植入监控代码最终在控制台输出各方法执行时间。https://blog.csdn.net/u010132847/article/details/162975662?spm1011.2415.3001.5331四、启动项目查看效果4.1、项目启动会优先初始化加载Skywalking文件然后出现如下字样INFO 2026-07-17 11:03:06.943 main SkyWalkingAgent : Skywalking agent begin to install transformer ...浏览器访问skywalking(之前端口没改默认是8080端口)地址http://localhost:8080,新开浏览器访问几次该项目下的web接口后再次查看该界面里的Trace面板看到被记录的请求及TraceId。项目日志里也出现了TIDTraceId。