可以的。Java 自带的 java.util.logging.Logger(JUL)本身就能写文件,不需要额外依赖。
下面给你几种常见用法。
Logger 本身只负责“记录日志”,真正写文件的是 Handler。
常用写文件的 Handler:
FileHandler:写文件(最常用)ConsoleHandler:写控制台SocketHandler:写网络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:
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
实际项目中更常用:
示例(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 方便
如果你愿意,我可以帮你:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。