在 Java 里,Logger 和 log4j 经常一起出现,但含义不同,容易混淆。可以从“概念 vs 实现”来理解。
Logger(日志记录器) 是一个通用概念,表示“用来记录日志的对象”。
在 Java 中,Logger 常见于:
java.util.logging.Loggerimport java.util.logging.Logger;
Logger logger = Logger.getLogger("MyLogger");
logger.info("hello");
特点:
logging.properties)log4j 是 Apache 的一个日志框架实现,是一个具体的日志库。
import org.apache.log4j.Logger;
Logger logger = Logger.getLogger(MyClass.class);
logger.info("hello");
特点:
⚠️ 注意:
org.apache.log4j是 log4j 1.x,已停止维护
现在推荐使用 log4j2(org.apache.logging.log4j)
| 对比项 | Logger | log4j |
|---|---|---|
| 本质 | 日志概念 / JDK 类 | 日志框架(第三方库) |
| 是否属于标准 | 是(JDK) | 否(Apache) |
| 使用范围 | java.util.logging | Apache Log4j |
| 配置复杂度 | 高、不灵活 | 低、灵活 |
| 性能 | 一般 | 较好 |
| 现在推荐 | 不常用 | log4j2 / SLF4J |
不要用 Logger 或 log4j 直接写死代码
✅ 推荐方式:SLF4J + 日志实现
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Logger logger = LoggerFactory.getLogger(MyClass.class);
logger.info("hello");
Logger 是“日志对象”的统称,log4j 是“一个具体的日志框架”
现在更推荐:SLF4J + Logback / Log4j2
如果你愿意,我也可以帮你对比 log4j / logback / SLF4J / JUL 的区别,或者给你一个完整配置示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。