Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何创建一个功能来测量java中查询的开始时间、结束时间和执行时间?_Java_Spring_Hibernate_Log4j_Benchmarking - Fatal编程技术网

如何创建一个功能来测量java中查询的开始时间、结束时间和执行时间?

如何创建一个功能来测量java中查询的开始时间、结束时间和执行时间?,java,spring,hibernate,log4j,benchmarking,Java,Spring,Hibernate,Log4j,Benchmarking,下午好!我需要创建允许我测量查询开始/结束时间和持续时间的功能。我尝试使用log4j库并创建自己的记录器,但无法在applicationSpringContext中指定它。也许有人可以建议如何正确处理这个问题?我可以使用什么工具来完成这些任务?非常感谢你的帮助! 迈洛格: package net.proselyte.springbootdemo; import org.hibernate.engine.internal.StatisticalLoggingSessionEventListene

下午好!我需要创建允许我测量查询开始/结束时间和持续时间的功能。我尝试使用log4j库并创建自己的记录器,但无法在applicationSpringContext中指定它。也许有人可以建议如何正确处理这个问题?我可以使用什么工具来完成这些任务?非常感谢你的帮助! 迈洛格:

package net.proselyte.springbootdemo;

import org.hibernate.engine.internal.StatisticalLoggingSessionEventListener;
import org.jboss.logging.Logger;

public class NewStatisticalLoggingSessionEventListener extends StatisticalLoggingSessionEventListener {
    private static final Logger log = Logger.getLogger(NewStatisticalLoggingSessionEventListener.class);

    @Override
    public void jdbcExecuteStatementStart() {
        //Write method
    }

    @Override
    public void jdbcPrepareStatementEnd() {
        //Write method
    }
}
尝试添加时的MyApplicationContext:

logging.level.net.proselyte.springbootdemo.NewStatisticalLoggingSessionEventListener=info
我的任务应具有以下输出:

startTime=2020-09-18 Time 10:30:1231
endTime=2020-09-18 Time 10:30:2500
requestExecutionTime=60;
success/unsuccess

您可以使用以下选项:

long startTime = System.currentTimeMillis();
// Some JDBC call
long finishTime = System.currentTimeMillis();
long timeElapsed = finish - start;

您可以使用以下选项:

long startTime = System.currentTimeMillis();
// Some JDBC call
long finishTime = System.currentTimeMillis();
long timeElapsed = finish - start;

有很多方法,如果我对每个方法都调用start()stop(),这将花费很长时间。我需要一个通用的选项我见过像New Relic这样的技术可以做到这一点,但这里有一个名为“log4jdbc”的库。您可以参考有许多方法,如果我对每一个方法调用start()stop(),这将花费很长时间。我需要一个通用的选项我见过像New Relic这样的技术可以做到这一点,但这里有一个名为“log4jdbc”的库。你可以参考