zoukankan      html  css  js  c++  java
  • perf4j+logback配置 非spring 可使用注解

    最近项目打算使用perf4j进行性能监控,由于项目没有使用spring,而又不想对代码入侵过高,打算使用注解的方式进行接入。perf4j采用AspectJ库实现AOP。

    具体接入方法如下:

    logback.xml

    <!--perf4j配置-->
        <appender name="statistics" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <Encoding>UTF-8</Encoding>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!--日志文件输出的文件名 -->
                <FileNamePattern>logs/statistics.%d{yyyy-MM-dd}.log</FileNamePattern>
            </rollingPolicy>
            <layout class="ch.qos.logback.classic.PatternLayout">
                <pattern>%msg%n</pattern>
            </layout>
        </appender>
    
        <appender name="coalescingStatistics" class="org.perf4j.logback.AsyncCoalescingStatisticsAppender">
            <timeSlice>10000</timeSlice>
            <appender-ref ref="statistics"/>
        </appender>
    
        <logger name="org.perf4j.TimingLogger" level="info" additivity="false">
            <appender-ref ref="coalescingStatistics" />
        </logger>
        <!--perf4j配置结束-->

    在META-INF下创建文件 aop.xml

    <!DOCTYPE aspectj PUBLIC "-//AspectJ//DTD//EN"
            "http://www.eclipse.org/aspectj/dtd/aspectj.dtd">
    <aspectj>
        <aspects>
            <aspect name="org.perf4j.slf4j.aop.TimingAspect"/>
        </aspects>
        <weaver options="-verbose -showWeaveInfo">
            <!-- Remember to include this-->
            <include within="org.perf4j.slf4j.aop.TimingAspect" />
            <include within="com.xxx.*" />
        </weaver>
    </aspectj>

    pom.xml

        <properties>
              <perf4j.version>0.9.16</perf4j.version>
              <aspectj.version>1.8.5</aspectj.version>
              <commons.jexl.version>1.1</commons.jexl.version>
         </properties>
    
         <dependency>
                <groupId>org.perf4j</groupId>
                <artifactId>perf4j</artifactId>
                <version>${perf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.aspectj</groupId>
                <artifactId>aspectjrt</artifactId>
                <version>${aspectj.version}</version>
            </dependency>
            <dependency>
                <groupId>org.aspectj</groupId>
                <artifactId>aspectjweaver</artifactId>
                <version>${aspectj.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-jexl</groupId>
                <artifactId>commons-jexl</artifactId>
                <version>${commons.jexl.version}</version>
            </dependency>

    pom.xml内添加plugin

             <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>aspectj-maven-plugin</artifactId>
                    <version>1.7</version>
                    <configuration>
                        <complianceLevel>1.7</complianceLevel>
                        <showWeaveInfo>true</showWeaveInfo>
                        <verbose>true</verbose>
                        <weaveDependencies>
                            <dependency>
                                <groupId>org.perf4j</groupId>
                                <artifactId>perf4j</artifactId>
                            </dependency>
                        </weaveDependencies>
                    </configuration>
                    <dependencies>
                        <dependency>
                            <groupId>org.aspectj</groupId>
                            <artifactId>aspectjtools</artifactId>
                            <version>${aspectj.version}</version>
                        </dependency>
                    </dependencies>
                    <executions>
                        <execution>
                            <goals>
                                <goal>compile</goal><!-- use this goal to weave all your main classes -->
                                <goal>test-compile</goal><!-- use this goal to weave all your test classes -->
                            </goals>
                        </execution>
                    </executions>
                </plugin>

    至此logback+perf4j配置就完成了。

    关于perf4j生成图表没有搭建成功,个人觉得logback和perf4j的结合使用不如log4j来的方便。

  • 相关阅读:
    Virtual Studio 2010在Release模式下进行调试的设置方法
    OpenGL Shader
    OGRE的安装编译
    开源GIS平台空间数据管理与发布技术研究
    风靡世界的小游戏2048源代码
    成为优秀程序员的几个阶段
    颜色空间模型(HSVLABRGBCMYK)
    希望自己的博客被知名搜索引擎收录的网址
    我的第一篇博客
    当你的善良受到委屈时
  • 原文地址:https://www.cnblogs.com/maoxiaolv/p/5569522.html
Copyright © 2011-2022 走看看