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

Java中第三方日志库-Log4J

Log4J概述

Log4J是Apache软件基金会下的一个开源项目,是一个功能强大且灵活的Java日志记录工具。它通过配置文件来控制日志输出的格式、级别和目标,具有以下主要特点:

  • 分级别记录日志:支持DEBUG、INFO、WARN、ERROR和FATAL五个日志级别
  • 可配置的输出目的地:可以输出到控制台、文件、数据库等
  • 灵活的布局格式:可以自定义日志输出的格式
  • 高效的日志记录:异步日志记录减少性能影响
  • 线程安全:适合多线程环境使用

Log4J由三个主要组件组成:

  1. Logger(记录器):负责捕获日志信息
  2. Appender(输出源):决定日志输出的目的地
  3. Layout(布局):控制日志信息的显示格式

引入Log4j依赖

在Maven项目中,可以通过在pom.xml中添加以下依赖来引入Log4J:

<dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version>
</dependency>

详情见:Maven通过修改pom.xml配置文件下载指定依赖包,以及解决MVNRepository网站加载和验证问题的方法

对于Gradle项目,可以在build.gradle中添加:

implementation 'log4j:log4j:1.2.17'

注意:如果使用Log4J 2.x版本,依赖会有所不同:

<dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.17.1</version>
</dependency>

引入log4j.properties

Log4J需要一个配置文件来定义日志行为,通常命名为log4j.properties或log4j.xml,放在项目的resources目录下。

一个典型的log4j.properties文件内容如下:

# 设置根Logger级别为DEBUG,输出到控制台和文件
log4j.rootLogger=DEBUG, CONSOLE, FILE# 控制台输出配置
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n# 文件输出配置
log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE.File=logs/application.log
log4j.appender.FILE.MaxFileSize=10MB
log4j.appender.FILE.MaxBackupIndex=10
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

Log4J使用

在Java代码中使用Log4J的基本步骤如下:

  1. 导入Log4J相关类:
import org.apache.log4j.Logger;
  1. 获取Logger实例:
private static final Logger logger = Logger.getLogger(YourClassName.class);
  1. 记录日志消息:
// 不同级别的日志记录
logger.debug("This is a debug message");
logger.info("This is an info message");
logger.warn("This is a warning message");
logger.error("This is an error message", exception);
logger.fatal("This is a fatal error");// 带参数的日志
logger.info("User {} logged in at {}", username, loginTime);
  1. 高级用法示例:
// 检查日志级别是否启用
if(logger.isDebugEnabled()) {logger.debug("Expensive debug message: " + expensiveOperation());
}// 使用MDC(Mapped Diagnostic Context)添加上下文信息
MDC.put("sessionId", session.getId());
logger.info("Processing request");
MDC.remove("sessionId");
  1. 实际应用场景:
  • 记录系统启动和关闭信息
  • 记录业务操作日志
  • 记录异常堆栈信息
  • 记录性能指标数据
  • 记录用户行为日志

注意:在生产环境中,应该适当调整日志级别,避免记录过多不必要的日志信息影响性能。Java中第三方日志库-Log4J
Log4J概述
引入Log4j依赖
引入log4j.properties
Log4J使用

http://www.dtcms.com/a/456623.html

相关文章:

  • Redis 键(Key)详解
  • 用AI帮忙,开发刷题小程序:软考真经微信小程序API接口文档(更新版)
  • soular入门到实战(5) - Kanass、sward、soular实现sso单点登录
  • 优秀平面设计作品网站wordpress 多人
  • Django5 与 Vue3 表单交互全解析:从基础到实战
  • 《UE5_C++多人TPS完整教程》学习笔记62 ——《P63 多人游戏中的开火特效(Fire Effects in Multiplayer)》
  • [特殊字符] 芋道项目中的参数校验机制详解:以 AppProductActivityListReqVO 为例
  • 网站发的文章如何优化抖音代运营协议模板
  • 三次B样条曲线在参数u(u 不是原始节点向量中的节点)处打断成两条B样条曲线的方法
  • 清华字节开源HuMo: 打造多模态可控的人物视频,输入文字、图片、音频,生成电影级的视频,Demo、代码、模型、数据全开源。
  • Python私教FastAPI+React构建Web应用03 FARM技术栈介绍
  • win11+4060安装cuda,cuda toolkit,cudnn
  • Python小说图片PDF生成器开发详解
  • 一款小巧的绿色内存自动清理软件
  • 开源 C++ QT QML 开发(十一)通讯--TCP服务器端
  • 计算机毕业设计java共享茶室预约微信小程序 微信小程序中的共享茶室预订平台 茶室共享预约小程序的设计与开发
  • 《投资-104》价值投资者的认知升级与交易规则重构 - 如何从投资的角度选择创业的方向?
  • 网站底部素材临沂市平邑县建设局网站
  • 光通信|OAM-波长可控交叉连接
  • Redshift中锁定表的查询与处理
  • 利用AI+大数据的方式分析恶意样本(四十六)
  • 解码Linux环境搭建
  • 第8章:定时任务与触发器——让 Bot 主动服务
  • Javaweb--Vue
  • 大数据模糊计算
  • 2021年408真题易错知识点整理
  • 【金仓数据库】ksql 指南(二) —— 创建与管理本地数据库
  • 凡科网站是骗子跨境网站开发公司
  • vite性能优化
  • git添加远程仓库报错To add an exception for this directory解决方案-优雅草卓伊凡