0

我正在尝试将 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.properties 文件:

# 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 记录器不打印。

请帮忙。

4

1 回答 1

1

来自 Perf4J 文档

Profiled 注释本身只是标记了一种分析方法 - 它实际上并没有添加任何计时代码。相反,您必须使用面向方面的编程框架,例如 AspectJ 或 Spring AOP,将时序方面注入您的代码。

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

阅读http://perf4j.codehaus.org/devguide.html#Unobtrusive_Logging_with_Profiled_and_AOP上的 Perf4J 文档以了解如何执行此操作。

于 2012-08-18T15:58:05.110 回答