JobRunr框架默认DEBUG日志级别无法修改问题求助
解决JobRunr默认DEBUG日志级别无法修改的问题
核心原因
JobRunr默认依赖SLF4J作为日志门面,若项目未明确配置日志实现(如Logback、Log4j2),它会自动绑定SLF4J Simple简单日志实现,而该实现的日志级别无法通过常规方式轻松调整,导致DEBUG日志持续输出。
解决方案
1. 配置项目日志实现(推荐方案)
根据你使用的日志框架,直接针对JobRunr的包设置日志级别:
- Logback:在
logback.xml中添加配置
<logger name="org.jobrunr" level="INFO" additivity="false"> <appender-ref ref="你的日志输出Appender"/> </logger>
- Log4j2:在
log4j2.xml中添加配置
<Logger name="org.jobrunr" level="INFO" additivity="false"> <AppenderRef ref="你的日志输出Appender"/> </Logger>
2. 通过JobRunr初始化代码指定日志级别
直接获取JobRunr的日志实例并修改级别,再绑定到初始化配置中:
import org.jobrunr.utils.logger.JobRunrLogger; import org.slf4j.LoggerFactory; import ch.qos.logback.classic.Level; import ch.qos.logback.classic.Logger; // 获取JobRunr根日志实例 Logger jobRunrLogger = (Logger) LoggerFactory.getLogger("org.jobrunr"); jobRunrLogger.setLevel(Level.INFO); // 初始化JobRunr时绑定自定义日志配置 JobRunr.configure() .useStorageProvider(new InMemoryStorageProvider()) .useBackgroundJobServer() .useLogger(new JobRunrLogger(jobRunrLogger)) .initialize();
3. 排除SLF4J Simple依赖
若项目依赖中自动引入了SLF4J Simple,手动排除它以强制使用你配置的日志实现:
- Maven:在依赖中添加排除规则
<dependency> <groupId>org.jobrunr</groupId> <artifactId>jobrunr</artifactId> <version>你的JobRunr版本号</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> </exclusion> </exclusions> </dependency>
- Gradle:在依赖中添加排除规则
implementation('org.jobrunr:jobrunr:你的JobRunr版本号') { exclude group: 'org.slf4j', module: 'slf4j-simple' }
验证方式
修改配置后重启应用,若仅输出INFO及以上级别的JobRunr日志,说明配置生效。
内容的提问来源于stack exchange,提问作者Oliver
相关产品推荐
相关产品推荐

