当前位置: 首页 > ds >正文

java log相关:Log4J、Log4J2、LogBack,SLF4J

目录

    • 测试
      • maven依赖
      • logback.xml
      • 测试主程序
      • 测试输出
      • arthas查看logger
    • 总结使用
    • 参考文档

测试

maven依赖

   <dependencies><!-- SLF4J API --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>2.0.13</version> <!-- 推荐使用最新稳定版 --></dependency><!-- Logback Classic (包含 logback-core) --><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.4.14</version> <!-- 与 slf4j-api 兼容 --></dependency><!-- logback-core 是 logback-classic 的依赖,无需单独声明 --><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId><version>1.4.14</version></dependency><!-- Log4j 2 API --><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>2.23.1</version></dependency><!-- Log4j 2 Core 实现 --><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.23.1</version></dependency><!-- 如果你使用 SLF4J 门面,需要桥接 --><!-- 将 SLF4J 调用桥接到 Log4j 2 --><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-slf4j2-impl</artifactId><version>2.23.1</version></dependency></dependencies>

logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration><!-- 控制台输出 --><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><!-- 按天滚动的日志文件 --><appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>//Users/dwl/projects/maven-test/logs/app.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>logs/app.%d{yyyy-MM-dd}.log</fileNamePattern><maxHistory>30</maxHistory></rollingPolicy><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n</pattern></encoder></appender><!-- 日志级别控制 --><root level="INFO"><appender-ref ref="STDOUT"/><appender-ref ref="FILE"/></root>
</configuration>

测试主程序


import org.slf4j.Logger;
import org.slf4j.LoggerFactory;public class Main {private static final Logger logger = LoggerFactory.getLogger(Main.class);public static void main(String[] args) {logger.info("应用启动中...");logger.warn("这是一个警告");logger.error("这是一个错误");}
}

或者使用lombok

import lombok.extern.slf4j.Slf4j;@Slf4j
public class Main {public static void main(String[] args) {log.info("应用启动中...");log.warn("这是一个警告");log.error("这是一个错误");}
}

测试输出

在这里插入图片描述

arthas查看logger

在这里插入图片描述

总结使用

理解门面模式: https://blog.csdn.net/qq_26437925/article/details/148292560

以下几种:

  1. slf4j + logback: slf4j-api.jar + logback-classic.jar + logback-core.jar
  2. slf4j + log4j: slf4j-api.jar + slf4j-log412.jar + log4j.jar
  3. slf4j + jul: slf4j-api.jar + slf4j-jdk14.jar
  4. 也可以只用slf4j无日志实现:slf4j-api.jar + slf4j-nop.jar

参考文档

  1. https://cloud.tencent.com/developer/article/2347147
  2. https://www.baeldung.com/slf4j-classpath-multiple-bindings
http://www.xdnf.cn/news/20280.html

相关文章:

  • 安防芯片ISP白平衡统计数据如何提升场景适应性?
  • 微信小程序如何进行分包处理?
  • 源雀SCRM开源:企微文件防泄密
  • 2025职教技能大赛汽车制造与维修赛道速递-产教融合实战亮剑​
  • 【详细指导】多文档界面(MDI)的应用程序-图像处理
  • 第三方web测评机构:【WEB安全测试中HTTP方法(GET/POST/PUT)的安全风险检测】
  • Unity3D URP线性空间UI透明度混合解决方案
  • linux离线安装elasticsearch8.19.3
  • 3.4_第二行之_ipipe_init_early()
  • 通用虚拟示教器:让机器人教学像玩游戏一样简单
  • 从音频到文本实现高精度离线语音识别
  • 【FastDDS】概述 Library Overview
  • Ubuntu 24.04.2安装k8s 1.33.4 配置cilium
  • finalize() 方法介绍
  • unity 接入火山引擎API,包括即梦AI
  • flutter-使用fluttertoast制作丰富的高颜值toast
  • 从 ETL 到 Agentic AI:工业数据管理变革与 TDengine IDMP 的治理之道
  • Android8 binder源码学习分析笔记(二)
  • Java 操作 Excel 全方位指南:从入门到避坑,基于 Apache POI
  • Spring Boot 源码深度解析:揭秘自动化配置的魔法
  • AR技术:电力巡检的智能升级之路
  • Python的RSS/Atom源解析库feedparser
  • 【微知】vscode如何开启markdown的review模式?
  • 飞算JavaAI炫技赛:在线图书借阅平台的设计与实现
  • 【完整源码+数据集+部署教程】雪崩检测与分类图像分割系统源码和数据集:改进yolo11-HSFPN
  • 网页版的云手机都有哪些优势?
  • C++(Qt)软件调试---bug排查记录(36)
  • 如何根据Excel数据表生成多个合同、工作证、录取通知书等word文件?
  • 【自动化实战】Python操作Excel/WORD/PDF:openpyxl与docx库详解
  • WinForms 项目里生成时选择“首选目标平台 32 位导致有些电脑在获取office word对象时获取不到