我正在尝试将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记录器。
请帮忙。
答案 0 :(得分:1)
来自Perf4J文档
Profiled注释本身只标记了一种分析方法 - 它实际上并没有添加任何计时代码。相反,你必须使用 面向方面的编程框架,例如AspectJ或Spring AOP 将时序方面注入代码中。
为上述AOP框架提供了方面类。您只需添加一些配置文件即可开始使用。
阅读http://perf4j.codehaus.org/devguide.html#Unobtrusive_Logging_with_Profiled_and_AOP处的Perf4J文档,了解如何执行此操作。