温馨提示×

温馨提示×

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

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

java Logger 能写文件吗

发布时间:2026-10-23 16:03:40 来源:亿速云 阅读:87 作者:小樊 栏目:编程语言

可以的。Java 自带的 java.util.logging.Logger(JUL)本身就能写文件,不需要额外依赖。

下面给你几种常见用法。


一、Logger 默认就能写文件(通过 Handler)

Logger 本身只负责“记录日志”,真正写文件的是 Handler。

常用写文件的 Handler:

  • FileHandler:写文件(最常用)
  • ConsoleHandler:写控制台
  • SocketHandler:写网络

二、最简单示例:Logger 写文件

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

public class LogDemo {
    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 文件。


三、按大小 / 按天切割日志(推荐)

// 每个文件最大 1MB,最多 5 个,自动滚动
FileHandler handler = new FileHandler("app-%g.log", 1024 * 1024, 5, true);

生成示例:

app-0.log
app-1.log

四、通过 logging.properties 配置(不用改代码)

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

五、如果你觉得 JUL 太难用

实际项目中更常用:

  • Log4j2(功能强、性能好)
  • Logback(Spring 默认)

示例(Logback):

<appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <file>app.log</file>
    <encoder>
        <pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger - %msg%n</pattern>
    </encoder>
</appender>

六、总结

✅ Java Logger 能写文件
✅ 靠 FileHandler 实现
✅ 支持追加、切割、格式化
❌ 原生功能不如 Log4j / Logback 方便

如果你愿意,我可以帮你:

  • 写 完整可运行示例
  • 对比 JUL vs Log4j2
  • 按你的 项目类型(Spring / 普通 Java) 给方案
向AI问一下细节

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

AI
助
手