You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为使用JUL日志的应用配置Ehcache日志级别?

修改Ehcache日志级别(Java Util Logging/JUL 环境)

我完全懂你的处境——网上搜一圈,全是SLF4J/Logback搭配Ehcache的日志配置示例,可自己的应用偏偏用的是JUL(java.util.logging),试了net.sf.ehcache=ALL还没效果,属实头疼。别慌,咱们从两个关键地方入手解决:正确的JUL配置语法和确保Ehcache用JUL输出日志。

一、修正logging.properties的配置语法

你之前的配置写法不符合JUL的规则,JUL要求日志器的级别必须明确用.level后缀来声明,直接写net.sf.ehcache=ALL是不会被识别的。

下面是修改后的完整配置示例:

.level=INFO
# Handlers
handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

# 处理器级别配置(保持你原有设置即可)
org.apache.juli.FileHandler.level = INFO
java.util.logging.ConsoleHandler.level = INFO
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

# 正确配置Ehcache的全局日志级别
net.sf.ehcache.level = ALL

如果需要更细粒度的控制(比如只调整Ehcache某一模块的日志),可以针对子日志器单独配置:

# 仅调整Ehcache缓存核心模块的日志级别为FINEST
net.sf.ehcache.cache.level = FINEST
# 调整存储模块的日志级别为FINER
net.sf.ehcache.store.level = FINER

二、确保Ehcache使用JUL作为日志实现

很多时候配置了JUL却没效果,是因为Ehcache默认依赖SLF4J作为日志门面,实际日志输出走的是SLF4J绑定的其他框架(比如Logback),根本没用到JUL。

如果是Maven项目,你需要排除Ehcache自带的SLF4J依赖,同时引入Ehcache的JUL适配器:

<dependency>
    <groupId>net.sf.ehcache</groupId>
    <artifactId>ehcache</artifactId>
    <version>你的Ehcache版本号</version>
    <exclusions>
        <!-- 排除SLF4J依赖,避免日志走SLF4J渠道 -->
        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<!-- 引入Ehcache的JUL适配器,让Ehcache用JUL输出日志 -->
<dependency>
    <groupId>net.sf.ehcache</groupId>
    <artifactId>ehcache-jul</artifactId>
    <version>你的Ehcache版本号</version>
</dependency>

验证配置是否生效

重启应用后,你可以通过输出的日志内容来验证:如果Ehcache的Debug/Trace级别的日志被打印出来,就说明配置生效了。如果还是没效果,可以检查JUL配置文件是否被正确加载(比如通过-Djava.util.logging.config.file=/path/to/your/logging.properties参数指定路径)。

内容的提问来源于stack exchange,提问作者naXa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:23:32