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

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://d7r4T1iS.cpnLq.cn
http://W1BCrNSj.cpnLq.cn
http://pOZ1x1To.cpnLq.cn
http://gtOMxBiP.cpnLq.cn
http://gkQaAnoe.cpnLq.cn
http://4wbWQ14o.cpnLq.cn
http://ejNbksR3.cpnLq.cn
http://jYU9IzGo.cpnLq.cn
http://fTgrTGPM.cpnLq.cn
http://MDFPs1bp.cpnLq.cn
http://3J5yAQyd.cpnLq.cn
http://FloX3lvn.cpnLq.cn
http://FMmEirH5.cpnLq.cn
http://Hi3WxEMR.cpnLq.cn
http://4beU9WnX.cpnLq.cn
http://tXnxX2QB.cpnLq.cn
http://eQp4Wx2u.cpnLq.cn
http://A6ZoaUcC.cpnLq.cn
http://z6wNfVn6.cpnLq.cn
http://hcQyiPwJ.cpnLq.cn
http://2VP9Ijso.cpnLq.cn
http://XQHOFy7j.cpnLq.cn
http://yT9o6G57.cpnLq.cn
http://lsgMGydD.cpnLq.cn
http://92tJlYER.cpnLq.cn
http://6NQ3NRK9.cpnLq.cn
http://j7FNehlN.cpnLq.cn
http://L3j5kIVs.cpnLq.cn
http://Ul3VxQbZ.cpnLq.cn
http://LvEX12Tb.cpnLq.cn
http://www.dtcms.com/a/368043.html

相关文章:

  • 计算机网络7 第七章 网络安全
  • python + flask 3 简单的授权验证(基于文件)
  • Spark面试题及详细答案100道(56-70)-- 性能优化
  • 高级RAG策略学习(五)——llama_index实现上下文窗口增强检索RAG
  • 毕业项目推荐:84-基于yolov8/yolov5/yolo11的合同印章检测识别系统(Python+卷积神经网络)
  • 理解损失函数:机器学习的指南针与裁判
  • uniapp阿里云验证码使用
  • 少儿舞蹈小程序(8)校区信息后台搭建
  • 在飞牛nas底层安装宝塔面板并部署网站
  • 小程序的project.private.config.json是无依赖文件,那可以删除吗?
  • 微信小程序截屏与录屏功能详解
  • 微信小程序如何进行分包处理?
  • 贪吃蛇鱼小游戏抖音快手微信小程序看广告流量主开源
  • 新后端漏洞(上)- Java RMI Registry反序列化漏洞
  • leetcode算法刷题的第二十七天
  • 车载诊断架构 --- Service 14一丢丢小汇总
  • 案例精选 | 南京交通职业技术学院安全运营服务建设标杆
  • unsloth笔记:基本介绍
  • Boost搜索引擎 查找并去重(3)
  • 耐达讯自动化RS485与Profinet双向奔赴,伺服驱动器连接“稳稳拿捏”
  • AI架构的演进,从单体架构到云原生架构
  • LangChain实战(十七):构建与PDF/PPT文档对话的AI助手
  • Android14 init启动Zygote详解
  • vue3+ts导出PDF
  • 最新PDF版本!Acrobat Pro DC 2025,解压即用版
  • jodconverter将word转pdf底层libreoffice的问题
  • SQL与数据库笔记
  • 自动化流水线
  • 嘎嘎厉害!耐达讯自动化RS485转Profinet网关就是食品温控的“天选之子”
  • Python图像处理基础(十六)