slf4j、log4j2及logback使用

slf4j、log4j2及logback使用

1、问题来源

之前看过关于slf4j、log4j2及logback的介绍,slf4j是门面,log4j2及logback是具体实现,仅使用slf4j门面是无法输出日志的。

本文采用 jdk11,测试代码 Slf4jTest.java如下:

import lombok.extern.slf4j.Slf4j;
@Slf4j
public class Slf4jTest {
    public static void main(String[] args) {
        log.info("info");
        log.debug("debug");
        log.error("error");
        log.warn("warn");
    }
}

@Slf4j需要 <dependency></dependency>依赖如下:


    org.projectlombok
    lombok
    1.18.24

    org.slf4j
    slf4j-api
    2.0.0

运行程序,不出意外,程序报错 SLF4J: No SLF4J providers were found.。原因为代码只有slf4j门面,没有相关实现。

slf4j、log4j2及logback使用

2、slf4j与log4j2使用

(1)在maven依赖中引入 slf4j-log4j12 、及 log4j-core 包,如下图


    org.slf4j
    slf4j-log4j12
    2.0.0

    org.apache.logging.log4j
    log4j-core
    2.18.0

运行代码,之前的错误消失,取而代之的是 log4j:WARN No appenders could be found for logger (binghe.concurrent.Slf4jTest).错误,如下图。原因为log4j2需要配置文件。

slf4j、log4j2及logback使用

(2)在项目resources目录下新建 log4j.properties 文件,代码如下

Set root logger level to DEBUG and its only appender to console.

log4j.rootLogger=DEBUG, console
console is set to be a ConsoleAppender.

log4j.appender.console=org.apache.log4j.ConsoleAppender
console uses PatternLayout.

log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.Target = System.out
log4j.appender.console.Threshold = DEBUG
log4j.appender.console.layout.ConversionPattern=%-4r [%t]  %-5p %c %x - %m%n

运行代码,程序正常输出:

0    [main]  INFO  binghe.concurrent.Slf4jTest  - info
1    [main]  DEBUG binghe.concurrent.Slf4jTest  - debug
2    [main]  ERROR binghe.concurrent.Slf4jTest  - error
2    [main]  WARN  binghe.concurrent.Slf4jTest  - warn

3、slf4j与logback使用

删除第2节中maven依赖引入的 slf4j-log4j12、及 log4j-core包。

(1)在maven依赖中引入 logback-classic 、及 logback-core


    ch.qos.logback
    logback-classic
    1.4.0

    ch.qos.logback
    logback-core
    1.4.0

(2)在项目resources目录下新建 logback.xml 文件


            %d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %msg%n

运行代码,程序正常输出:

2022-10-02 21:13:37.174 INFO  [main] info
2022-10-02 21:13:37.181 DEBUG [main] debug
2022-10-02 21:13:37.181 ERROR [main] error
2022-10-02 21:13:37.181 WARN  [main] warn

Original: https://www.cnblogs.com/happyfuns/p/16749527.html
Author: happyfuns
Title: slf4j、log4j2及logback使用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/801550/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • postman的使用

    零、PostMan介绍 Postman 是一个接口测试工具软件,可以帮助开发人员管理测试接口。当用户在 Postman 中输入请求并单击 Send 按钮时,服务器将接收用户的请求并…

    Python 2023年10月14日
    047
  • 好好的系统,为什么要分库分表?

    大家好,我是小富~ 说在前边 今天是《分库分表 ShardingSphere 原理与实战》系列的开篇文章,之前写过几篇关于分库分表的文章反响都还不错,到现在 &#x516C…

    Python 2023年10月14日
    032
  • python中对文件路径的获取

    1、获取当前文件的绝对路径 import os cur_path = os.path.abspath(__file__) print(cur_path) 输出:E:\python\…

    Python 2023年8月1日
    040
  • pandas学习之数据类型

    概述 pandas包含两种数据结构,DataFrame和Series,分别表示二维数据结构和一维数据结构 Series 表示一维数据结构,也是包含两部分,左侧索引部分和右侧数据部分…

    Python 2023年8月17日
    039
  • DataFrame.clip()的使用

    DataFrame.clip(lower=None, upper=None, axis=None, inplace=False, args, *kwargs) 在输入阈值处修剪值。…

    Python 2023年8月22日
    062
  • laya3D个人整理(初学)

    了解3D游戏开发基础概念 场景与摄像机 场景:游戏中的3d世界,有了场景才可以进行添加物体,这一步是必须步骤摄像机:游戏世界的眼睛,通过摄像机玩家才可以看到游戏中的场景等,所以每个…

    Python 2023年9月19日
    046
  • python人名统计_「姓名分析」Python|美国婴儿姓名分析 – seo实验室

    姓名分析 01 起 我们拿到一份1880-2016这136年间美国婴儿取名的数据(数据源在这里下载),数据总共有189万条,57.7M的大小,字段如下: 下面我们使用Python3…

    Python 2023年8月17日
    070
  • 使用Python的pandas库操作Excel

    使用Python的pandas库操作Excel 最近因需要用Excel电子表格处理数据,使用了其它一些方式处理Excel文件数据,这是学习笔记的整理。 Excel2003及以前版:…

    Python 2023年8月1日
    061
  • 使用dockerfile部署springboot应用

    🚀 优质资源分享 🚀 学习路线指引(点击解锁)知识定位人群定位🧡 Python实战微信订餐小程序 🧡 进阶级本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯…

    Python 2023年8月9日
    041
  • HTML5基础

    HTML5 文章目录 * – + HTML5 + * 概述 * 开发工具 * – 浏览器 – 开发软件 * Demo * HTML5语法 * &…

    Python 2023年10月8日
    027
  • 第十章 NumPy 库

    文章目录 一、创建数组: * 例题10-1:创建数组并查看数组属性 构造复杂数组 生成随机数 例题10-2:绘制:随机生成10000数据,服从均值为0,方差为1的正态分布的直方图(…

    Python 2023年8月26日
    058
  • uboot环境变量

    1.uboot环境变量 在linux和windows操作系统中都有相应的环境变量,在操作系统中一般被指定为操作系统运行环境的一些参数。操作系统的环境变量主要作用可以用于指明重要目录…

    Python 2023年11月8日
    065
  • pandas中的 loc的使用(pandas.DataFrame.loc)

    api参考: 其他: 例子: 一、获取值 >>> df = pd.DataFrame([[1, 2], [4, 5], [7, 8]], index=[‘cobr…

    Python 2023年8月16日
    050
  • 带你了解NLP的词嵌入

    摘要:今天带领大家学习自然语言处理中的词嵌入的内容。 本文分享自华为云社区《【MindSpore易点通】深度学习系列-词嵌入》,作者:Skytier。 1 特征表示 在自然语言处理…

    Python 2023年10月28日
    046
  • python 跳过计算错误_在python中计算分数时如何跳过被0除的错误?

    我正在运行一个很长的CSV文件下面的函数。函数每50行计算列MFE的Z分数。这50行中有一些只包含零,因此在计算Zscore时,程序会停止,因为它不能被零除。如何解决这个问题,而不…

    Python 2023年8月9日
    060
  • [从零开始]Flask+Nginx在云服务器上部署服务

    服务器:百度智能云轻量应用服务器 2H4G 换源 mv /etc/apt/sources.list /etc/apt/sources_bak.list vi /etc/apt/so…

    Python 2023年8月10日
    042
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球