温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java Logger 如何写入文件

发布时间:2026-09-12 09:25:00 来源:亿速云 阅读:92 作者:小樊 栏目:编程语言

在 Java 中,Logger(java.util.logging.Logger) 默认是输出到控制台的,如果要写入文件,需要配置 Handler(通常是 FileHandler)。下面按常见方式给你说明。


一、最常用方式:使用 FileHandler 写入文件

import java.util.logging.*;
import java.io.IOException;

public class LoggerToFile {
    public static void main(String[] args) throws IOException {
        Logger logger = Logger.getLogger("MyLogger");
        logger.setUseParentHandlers(false); // 不输出到控制台

        // 写入文件
        FileHandler fileHandler = new FileHandler("app.log", true); // true 表示追加
        fileHandler.setFormatter(new SimpleFormatter());

        logger.addHandler(fileHandler);

        logger.info("这是一条日志信息");
        logger.warning("这是一条警告信息");
    }
}

参数说明

  • "app.log":日志文件名
  • true:追加模式(false 会覆盖)
  • SimpleFormatter:可读文本格式(默认是 XML)

二、按大小或日期滚动日志(推荐)

FileHandler fileHandler = new FileHandler(
        "logs/app-%g.log",
        1024 * 1024, // 每个文件 1MB
        5,           // 最多 5 个文件
        true
);

生成文件示例:

app-0.log
app-1.log

三、使用配置文件(更规范)

logging.properties

handlers=java.util.logging.FileHandler
.level=INFO

java.util.logging.FileHandler.pattern = app.log
java.util.logging.FileHandler.limit = 1048576
java.util.logging.FileHandler.count = 5
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter

启动程序时指定

java -Djava.util.logging.config.file=logging.properties Main

四、常见问题

1. 日志同时输出到控制台和文件

logger.setUseParentHandlers(true);

2. 日志格式不好看

自定义 Formatter:

fileHandler.setFormatter(new Formatter() {
    public String format(LogRecord record) {
        return record.getLevel() + ": " + record.getMessage() + "\n";
    }
});

五、如果你愿意

如果你用的是:

  • Log4j / Logback(Spring 项目)
  • 或想要 按天生成日志文件

可以告诉我,我可以给你更合适的方案。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI