欢迎访问宙启技术站
智能推送

自定义Java中的日志记录函数

发布时间:2023-11-03 16:17:44

在Java中,我们可以使用日志记录函数来记录应用程序的运行日志,以便于程序调试和故障排查。下面是一个示例的自定义日志记录函数的实现,该函数包含了常用的日志级别和格式化输出。

import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Logger {

    private String logFile;
    private boolean append;
    private SimpleDateFormat dateFormat;

    public Logger(String logFile, boolean append) {
        this.logFile = logFile;
        this.append = append;
        this.dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    }

    public void log(LogLevel level, String message) {
        String formattedMessage = "[" + dateFormat.format(new Date()) + "] " + level + ": " + message;

        try (PrintWriter out = new PrintWriter(new FileWriter(logFile, append))) {
            out.println(formattedMessage);
            out.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public enum LogLevel {
        DEBUG, INFO, WARNING, ERROR
    }
}

上述代码中的Logger类是一个简单的日志记录器,它接受一个日志文件路径和一个布尔值来指示是否追加日志。它使用SimpleDateFormat类来格式化日期时间,并提供了一个log函数来记录日志。

log函数中,我们通过拼接日期时间、日志级别和消息来生成最终的日志信息字符串。然后,使用PrintWriter类将该字符串写入日志文件中。使用try-with-resources语句来自动关闭文件写入器,以确保资源的正确释放。

这里还定义了一个日志级别的枚举类LogLevel,其中包含了常见的调试、信息、警告和错误级别。

使用该自定义日志记录函数,我们可以在需要记录日志时调用log函数,并传入对应的日志级别和消息。例如:

public static void main(String[] args) {
    Logger logger = new Logger("application.log", true);
    logger.log(Logger.LogLevel.INFO, "Application started");

    // Some code...

    logger.log(Logger.LogLevel.DEBUG, "Debug message");

    // Some more code...

    try {
        int result = 10 / 0;
    } catch (ArithmeticException e) {
        logger.log(Logger.LogLevel.ERROR, "Error occurred: " + e.getMessage());
    }
}

上述代码示例中,我们首先创建一个Logger实例,指定日志文件路径为application.log,并设置追加模式为true。然后,通过调用log函数记录了应用程序的启动信息、调试信息和异常信息。

通过以上实现,我们可以方便地自定义Java中的日志记录函数,以满足项目的具体需求,更好地进行日志记录和管理。