Java想要测试程序的运行时间,将运行时间打印到本地的日志文件中,该如何操作
5条回答 默认 最新
关注 引自免费微信小程序:皆我百晓生
在Java中,你可以使用
java.util.logging.Logger
类来记录日志到本地文件。下面是一个详细的步骤和示例代码,教你如何设置并使用它。首先,你需要创建一个Logger实例,并指定一个名称。然后,配置这个Logger,使其将日志输出到一个文件。这里我们将创建一个新的名为"myAppLog.log"的日志文件。
以下是完整的代码示例:
import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.StandardOpenOption; import java.util.logging.FileHandler; import java.util.logging.Level; import java.util.logging.Logger; public class Main { private static final Logger LOGGER = Logger.getLogger(Main.class.getName()); public static void main(String[] args) { // 创建日志文件 String logFilePath = "logs/myAppLog.log"; Path path = Path.of(logFilePath); try { Files.createDirectories(path.getParent()); // 创建日志文件夹(如果不存在) Files.createFile(path); // 创建日志文件 } catch (IOException e) { System.err.println("Failed to create log file: " + e.getMessage()); return; } // 配置日志处理器 FileHandler fileHandler; try { fileHandler = new FileHandler(logFilePath, true); // 设置为追加模式,防止每次启动覆盖旧日志 fileHandler.setFormatter(new java.util.logging.SimpleFormatter()); LOGGER.addHandler(fileHandler); } catch (IOException e) { System.err.println("Failed to configure file handler: " + e.getMessage()); return; } // 设置日志级别 LOGGER.setLevel(Level.INFO); // 开始计时 long startTime = System.currentTimeMillis(); // 你的代码逻辑... // ... // 计算并记录执行时间 long endTime = System.currentTimeMillis(); long executionTime = endTime - startTime; LOGGER.info("Program execution time: " + executionTime + " ms"); // 如果需要,在这里可以关闭文件处理器 // fileHandler.close(); } }
在这个例子中,我们首先创建了一个Logger对象,并将其与当前类关联。然后,我们创建了一个
FileHandler
,用于将日志信息写入到指定的文件中。我们设置了日志级别为INFO,这意味着所有INFO及更高级别的日志消息都会被记录。在主函数的末尾,我们计算了程序的执行时间,并通过
LOGGER.info()
方法将其记录到日志文件中。如果你需要在其他地方也记录日志,只需调用LOGGER.info()
、LOGGER.warning()
或LOGGER.severe()
等方法即可,根据不同的信息重要性选择合适的级别。注意:为了确保代码的可读性和整洁性,通常我们会把日志相关的配置放在单独的方法或配置类中。以上代码仅作为演示用途。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 单纯型python实现编译报错
- ¥15 c++2013读写oracle
- ¥15 c++ gmssl sm2验签demo
- ¥15 关于模的完全剩余系(关键词-数学方法)
- ¥15 有没有人懂这个博图程序怎么写,还要跟SFB连接,真的不会,求帮助
- ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
- ¥15 keil官网下载psn序列号在哪
- ¥15 想用adb命令做一个通话软件,播放录音
- ¥30 Pytorch深度学习服务器跑不通问题解决?
- ¥15 部分客户订单定位有误的问题