温馨提示×

温馨提示×

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

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

java Logger 日志记录器怎么过滤

发布时间:2026-10-03 02:05:33 来源:亿速云 阅读:86 作者:小樊 栏目:编程语言

在 Java 中,Logger(java.util.logging.Logger) 的“过滤”通常可以从 级别过滤、自定义 Filter、Handler 过滤、配置文件过滤 几个层面来做。下面按常见用法给你系统说明。


一、按日志级别过滤(最基础)

Logger 本身有级别(Level):

Logger logger = Logger.getLogger("com.example");
logger.setLevel(Level.WARNING); // 只记录 WARNING 及以上

级别顺序(由低到高):

FINEST < FINER < FINE < CONFIG < INFO < WARNING < SEVERE

⚠️ 注意:

  • Logger 级别 和 Handler 级别都会生效
  • 最终是否记录 = Logger级别 && Handler级别

二、使用 Handler 级别过滤

Logger logger = Logger.getLogger("com.example");
ConsoleHandler handler = new ConsoleHandler();
handler.setLevel(Level.INFO);
logger.addHandler(handler);
logger.setUseParentHandlers(false);

这样即使 Logger 是 ALL,也只会输出 INFO 及以上。


三、使用自定义 Filter(最灵活)

实现 java.util.logging.Filter 接口:

public class MyFilter implements Filter {
    @Override
    public boolean isLoggable(LogRecord record) {
        // 只记录包含 "IMPORTANT" 的日志
        return record.getMessage().contains("IMPORTANT");
    }
}

使用方式:

logger.setFilter(new MyFilter());

或只对某个 Handler 过滤:

handler.setFilter(new MyFilter());

✅ Filter 的返回值:

  • true → 记录
  • false → 丢弃

四、按 Logger 名称过滤(包级别)

Logger logger = Logger.getLogger("com.example.service");

在 logging.properties 中:

com.example.service.level = FINE
com.example.dao.level = WARNING

五、通过 logging.properties 配置过滤

示例:

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

java.util.logging.ConsoleHandler.level = WARNING

com.example.level = FINE

启动参数:

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

六、常见误区

❌ 只设置 Logger 级别,但 Handler 是 WARNING,结果看不到 INFO
✅ Logger 和 Handler 级别都要检查

❌ 忘记关父 Handler

logger.setUseParentHandlers(false);

七、如果你用的是 Log4j / SLF4J

如果你实际用的是:

  • Log4j2
  • Logback(SLF4J)

过滤方式会完全不同(基于 Appender / Filter / Marker),可以告诉我你用哪个框架,我可以给你对应示例。


总结一句话

Java Logger 过滤 = 级别 + Filter + Handler + 名称 四层控制

如果你有具体场景(比如“只记录某个用户”、“忽略某些异常”),可以直接说,我帮你写完整示例。

向AI问一下细节

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

AI
助
手