多种方法解决SLF4J: Defaulting to no-operation (NOP) logger implementation的错误

news2024/10/6 12:20:26

文章目录

  • 1. 复现错误
  • 2. 分析错误
  • 3. 解决错误
  • 4. 解决该错误的其他方法

1. 复现错误


今天在编写使用Quartz执行定时任务的方法,如下代码所示:

public class QuartzTest {

  public static void main(String[] args) throws SchedulerException {
      // 1、创建Scheduler(调度器)
      SchedulerFactory schedulerFactory = new StdSchedulerFactory();
      Scheduler scheduler = schedulerFactory.getScheduler();
      // 2、创建JobDetail实例,并与SimpleJob类绑定
      JobDetail jobDetail = JobBuilder.newJob(SimpleJob.class)
              .withIdentity("job-1", "job-group").build();
      // 3、构建Trigger(触发器),定义执行频率和时长
      CronTrigger cronTrigger = TriggerBuilder.newTrigger()
              .withIdentity("trigger-1", "trigger-group")
              .startNow()  //立即生效
              .withSchedule(CronScheduleBuilder.cronSchedule("0/5 * * * * ? "))
              .build();

      //4、执行
      scheduler.scheduleJob(jobDetail, cronTrigger);
      scheduler.start();
  }

class SimpleJob implements Job {
    @Override
    public void execute(JobExecutionContext jobExecutionContext) {
      // 创建一个事件,下面仅创建一个输出语句作演示
      final SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      System.out.println(
          Thread.currentThread().getName() + "--" + simpleDateFormat.format(new Date()));
    }
  }
}

启动时却报出如下图的错误:

在这里插入图片描述

SLF4J: Defaulting to no-operation (NOP) logger implementation

2. 分析错误


首先,找到上图中的SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.这句话。

将其翻译成中文是SLF4J:有关更多详细信息,请参阅 http://www.slf4j.org/codes.html#StaticLoggerBinder。

于是,点击链接https://www.slf4j.org/codes.html#StaticLoggerBinder,如下图所示:

在这里插入图片描述
不过,这都是英文的,我们不妨翻译成中文,如下所示:

无法加载类org.slf4j.impl.StaticLoggerBinder

org.slf4j.impl.StaticLoggerBinder类无法加载到内存中时,将报告此警告消息。当在类路径上找不到适当的SLF4J绑定时,会发生这种情况。在类路径上放置一个(并且只有一个)slf4j-nop.jar slf4j-simple.jar,slf4j-log4j12.jar,slf4j-jdk14.jar或logback-classic.jar应该可以解决问题。

请注意,slf4j-api版本2.0.x及更高版本使用ServiceLoader机制。面向slf4j-api 2.x的后端(如logback 1.3及更高版本)不随org.slf4j.impl.StaticLoggerBinder一起提供。如果放置一个面向slf4j-api 2.0.x的日志记录后端,则需要在类路径上slf4j-api-2.x.jar。另请参阅相关常见问题条目。

1.6.0SLF4J版本1.6开始,在没有绑定的情况下,SLF4J将默认为无操作 (NOP) 记录器实现。

如果您负责打包应用程序并且不关心日志记录,则将slf4j-nop.jar放在应用程序的类路径上将摆脱此警告消息。请注意,嵌入式组件(如库或框架)不应声明对任何SLF4J绑定的依赖关系,而应仅依赖于slf4j-api。当库声明对SLF4J绑定的编译时依赖关系时,它会将该绑定强加给最终用户,从而否定 SLF4J的目的。

总的来说,就是缺少slf4j-log4j12.jar这个依赖。

于是,查找我的项目,确实缺少slf4j-log4j12.jar依赖。

3. 解决错误


由于我的项目缺少slf4j-log4j12.jar依赖,在pom.xml中增加如下以来即可:

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>2.0.7</version>
    <scope>compile</scope>
</dependency>

重新启动项目,便能正常运行。

4. 解决该错误的其他方法


因为我的错误在项目中缺少slf4j-log4j12依赖,在pom.xml中增加该依赖即可。

如果你在项目中已增加了slf4j-log4j12依赖,但还是报错的话,可以参考如下解决方法。

检查范围(scope)是否设置为test,如下代码所示:

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>2.0.7</version>
    <scope>test</scope>
</dependency>

在这里插入图片描述

如果范围(scope)设置为test,也就是说只有在测试环境下,才可以使用。

而我是在main方法中直接运行,所以不属于测试环境,所以,这个包相当于就没有加入依赖。

可以将范围(scope)修改成compile,如下图所示:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/416337.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大数据系列——Hive理论

概述 Hive是一个数据仓库管理工具&#xff0c;将结构化的数据文件映射为一张数据库表&#xff0c;并提供类SQL&#xff08;HQL&#xff09;查询功能。由Facebook实现并开源,最后捐赠给Apache发展为顶级项目。 以RDBMS数据库为元数据存储服务&#xff0c; 以Hadoop HDFS来存储…

44.节流与防抖

目录 1 防抖 1.1 概念 1.2 应用场景 1.3 lodash防抖 1.4 手写防抖 2 节流 2.1 概念 2.2 应用场景 2.3 lodash节流 2.4 手写节流 2.5 记录视频上一次的播放位置 1 防抖 1.1 概念 防抖就是让事件触发后延迟n秒后再执行回调函数&#xff0c;在这n秒内如…

014:Mapbox GL添加draw组件,绘制点、线、多边形、删除

第014个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中添加draw组件,绘制点、线、多边形,删除所选元素。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共78行)相关API参考:专栏目标示例效果 配置方…

用于平抑可再生能源功率波动的储能电站建模及评价(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

项目部署---手工部署项目

手工部署项目 在ideal中开发springboot项目并打成jar包 将jar包上传到Linux服务器 mkdir /usr/local/app 创建目录&#xff0c;将项目jar包放到此目录 ![](https://img-blog.csdnimg.cn/83cf26b151874637a2dfeda7dd05e4cf.jpeg) 启动SpringBoot程序 检查防火墙&#xff0c;…

电脑蓝屏问题排查

最近电脑安装了最新win10&#xff0c;更新最新的驱动以后&#xff0c;开机几分钟后&#xff0c;会蓝屏重启&#xff0c;报错为&#xff1a; DRIVER_POWER_STATE_FAILURE 下载蓝屏分析工具BlueScreenView 问题出在ntoskrnl.exe bing搜索给出了二种解决方案&#xff1a; 1&a…

软件测试应届生社招找工作面试会遇到哪些坑?(全网最全避坑指南)

目录 找工作的最佳时间 是否裸辞 我们要做哪些准备工作 准备一段自我介绍 准备一份pdf简历 社招找工作的渠道&#xff1a;内推 找工作的最佳时间 社招找工作的最佳时间是&#xff1a;金三银四。也就是春节后的三月份和四月份。 为什么是金三银四呢&#xff1f;因为每年的…

HTML5 Geolocation

文章目录HTML5 Geolocation定位用户的位置浏览器支持HTML5 - 使用地理定位处理错误和拒绝在地图中显示结果给定位置的信息getCurrentPosition() 方法 - 返回数据Geolocation 对象 - 其他有趣的方法HTML5 Geolocation HTML5 Geolocation&#xff08;地理定位&#xff09;用于定位…

【SQL Server】数据库开发指南(五)T-SQL 高级查询综合应用与实战

T-SQL 是 SQL Server 的专用版本&#xff0c;提供了一组强大的高级查询功能&#xff0c;包括聚合函数、子查询、连接、视图、窗口函数、共享表达式、递归查询等。这些功能使得 T-SQL 可以轻松处理大量数据&#xff0c;并支持各种复杂的查询和数据操作。本文将介绍 T-SQL 的一些…

Debian 10配置apt源常见问题

目录 一&#xff1a;配置本地apt源没有发现文件 解决方案 二&#xff1a;apt下载bind9报错E: Package bind9 has no installation candidate 方法一&#xff1a; 方法二&#xff1a;更新不报错但是安装依旧报错E: Package bind9 has no installation candidate 一&#xff…

密码加密——加盐算法(两种方式)

加盐算法 文章目录加盐算法手写一个加盐算法spring security密码安全是一件很重要的事情&#xff0c;所以一定要谨慎对待 常见的主要是3种方式 明文MD5加密加盐算法 首先明文肯定是不可取的&#xff0c;在数据库中明文存储密码风险实在是太大了 简单来说&#xff0c;使用MD…

DataGrip连接数据库设置(MySQL、Oracle、SQL Server)

一、DataGrip连接MySQL 1.1 配置信息 1.2 测试查询employees库中departments表信息 employees为测试库&#xff0c;具体来源&#xff0c;参考这篇文章 下载并导入MySQL示例数据库employees 。 1.3 测试查询employees库中employees表信息 二、DataGrip连接Oracle 将SID改为o…

「字节跳动实习期间」免费专栏发布+服务端知识架构

字节跳动实习期间专栏内容 主要放在字节跳动实习期间个人的一些笔记&#xff0c;通过整理放出&#xff0c;并保持不断迭代 同时这里并不会放涉及字节内部的文档和知识&#xff0c;只是博主整理的网上已有的知识 欢迎同学们关注专栏、互相学习、共同进步&#xff0c;我也会在…

vue-cli(vue脚手架方式搭建)

1.首先安装node前端环境,可以帮助我们去下载其他的组件 下载完成后,去自己的电脑找到node的文件路径,复制去配置环境变量,在path中配 环境搭配完成后,在cmd中进行测试 ,输入一下两个命令进行测试 2.在hbuilderX中创建一个vue-cli项目(标准的前段项目) 3.组件路由 (1)安装 v…

java基础学习-5

Java基础学习-5快乐算法二分查找小总结分块查找冒泡选择插入排序递归算法快速排序小总结ArraysLambda表达式小总结Lambda表达式的省略写法小练习集合进阶CollectionColection的遍历方式迭代器遍历小总结增强for循环Lambda表达式遍历小总结List集合List的遍历方式迭代器遍历增强…

【redis】集群

redis集群 集群有点难 大部分的实操命令没有记录 希望能二刷补上 18:46 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录redis集群前言一、集群是什么&#xff1f;二、集群能干嘛&#xff1f;三、集群算法-分片-槽…

redis——分布式

持久化RDBAOF主从同步全量同步增量同步哨兵sentinel作用服务状态监控选举master分片集群作用散列插槽 hash slot集群伸缩故障转移多级缓存持久化 RDB redis备份文件&#xff08;快照&#xff09; 可压缩&#xff0c;耗费cpu默认在服务停止时触发可以设置一定条件&#xff0c…

《C Primer Plus》第16章复习题与编程练习

《C Primer Plus》第16章复习题与编程练习复习题1. 下面的几组代码由一个或多个宏组成&#xff0c;其后是使用宏的源代码。在每种情况下代码的结果是什么&#xff1f;这些代码是否是有效代码&#xff1f;&#xff08;假设其中的变量已声明&#xff09;2. 修改复习题1中d部分的定…

Linux的chage命令

Linux系统中有安全验证机制&#xff0c;有一个密码过期管理功能&#xff0c;当该账户密码过期了&#xff0c;那么用户在登录系统的时候就会提示我们更改密码。当密码过期后&#xff0c;并不代表这个用户不用密码就能登录了&#xff0c;而是使用旧密码登录&#xff0c;然后跳转到…

靶机精讲之PWOOS1.0

主机发现 nmap扫描 端口发现扫描 UDP扫描 服务扫描 脚本扫描 查看链接 暴露的信息 mgmt manegement管理系统 web渗透 80端口 观察文件路径的变化 sql注入 手动注入 加‘有报错 查看有无文件包含 无 /etc/passwd(查看文件包含&#xff09; 有 10000端口 把有文件包含路径在…