有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java需要帮助来集成Perf4J和log4j。属性

我正在尝试集成Perf4j v0。9.16带有log4j v1。2.17.

下面是Utils类,它有一个方法

public class Utils {

    private static Logger logger = Logger.getLogger(Utils.class);

    @Profiled
    public String checkNullValueForString(Object obj)
    {
        String resultStr = "";
        if(obj != null)
        {
            logger.info("Object is not null.");
            resultStr = String.valueOf(obj);
        }
        logger.info("Resultstr is "+resultStr);
        return resultStr;
    }
}

下面是log4j。属性文件:

# Define the root logger with appender file
log = /usr/home/log4j
log4j.rootLogger = DEBUG, FILE
org.perf4j.log4j = INFO

# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File= logs/log.out

# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n

当我运行utils方法时,它会打印记录器消息,但perf4j记录器不会打印

请帮忙


共 (1) 个答案

  1. # 1 楼答案

    从Perf4J文档中

    the Profiled annotation by itself just marks a method for profiling - it does not actually add any timing code. Instead, you must use an aspect-oriented programming framework, such as AspectJ or Spring AOP to inject timing aspects into your code.

    上面两个AOP框架都提供了方面类。你只需要添加一些配置文件就可以开始了

    阅读位于http://perf4j.codehaus.org/devguide.html#Unobtrusive_Logging_with_Profiled_and_AOP的Perf4J文档,了解如何做到这一点