痞子374 2024-04-24 11:07 采纳率: 94.6%
浏览 13
已结题

Java打印log信息到本地文件夹中

Java想要测试程序的运行时间,将运行时间打印到本地的日志文件中,该如何操作

  • 写回答

5条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-24 11:07
    关注

    引自免费微信小程序:皆我百晓生

    在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()等方法即可,根据不同的信息重要性选择合适的级别。

    注意:为了确保代码的可读性和整洁性,通常我们会把日志相关的配置放在单独的方法或配置类中。以上代码仅作为演示用途。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 6月11日
  • 已采纳回答 6月3日
  • 创建了问题 4月24日

悬赏问题

  • ¥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 部分客户订单定位有误的问题