最详细的Log4j使用教程

作为一名Java程序员,我们开发了很多Java应用程序,包括桌面应用、WEB应用以及移动应用。然而日志系统是一个成熟Java应用所必不可少的,在开发和调试阶段,日志可以帮助我们更好更快地定位bug;在运行维护阶段,日志系统又可以帮我们记录大部分的异常信息,从而帮助我们更好的完善系统。本文要来分享一些Java程序员最常用的Java日志框架组件。

Log4j是一款基于Java的开源日志组件,Log4j功能非常强大,我们可以将日志信息输出到控制台、文件、用户界面,也可以输出到操作系统的事件记录器和一些系统常驻进程。更值得一提的是,Log4j可以允许你非常便捷地自定义日志格式和日志等级,可以帮助开发人员全方位地掌控日志信息。



1、log4j.properties日志文件

### 设置###
log4j.rootLogger = debug,stdout,D,E

### 输出信息到控制抬 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

### 输出DEBUG 级别以上的日志到=F://logs/error.log ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File =F://logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

### 输出ERROR 级别以上的日志到=F://logs/error.log ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =F://logs/error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

2、在web.xml配置(要有log4j.jar依赖)

	<!--log4j日志配置-->
	<context-param>
		<param-name>log4jConfigLocation</param-name>
		<param-value>classpath:config/log4j.properties</param-value>
	</context-param>
	<context-param>
		<param-name>log4jLocation</param-name>
		<param-value>6000</param-value>
	</context-param>
	<!-- 定义LOG4J监听器 -->
	<listener>
		<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
	</listener>

我是在spring中使用、下面是我的、日志配置文件一定是在其他配置之前、这是servlet就会先读取日志配置文件


3、log4j日志内容解析

# log4j核心
# --------------------------------------------------------------------------------
# 1、Logger完成日志信息的处理,可以分成不同的级别记录日志信息,如:debug,info,error
# --------------------------------------------------------------------------------
# Logger可以定义输出的层次和决定信息是否输出
# Logger输出的信息是有优先级别的: ALL,TRACE,DEBUG,INFO,WARN,ERROR,FATAL,OFF------级别由小到大
# 常用的有:DEBUG,INFO,WARN,ERROR
# --------------------------------------------------------------------------------
# 2、Appender设置日志信息的去向  如:一个文件中,*.log,*.htm等。或者说是数据库中
# --------------------------------------------------------------------------------
# Appender就是设置日志讯息输出到那个地方,可以同时指定多个输出目的地:
# log4j.rootLogger=debug,appender1,appender2    
# log4j.appender.appender1=org.apache.log4j.ConsoleAppender
# log4j.appender.appender2=org.apache.log4j.ConsoleAppender
# --------------------------------------------------------------------------------
# 3、常用的Appender
# --------------------------------------------------------------------------------
# org.apache.log4j.ConsoleAppender(控制台)
# ogr.apache.log4j.FileAppender(文件)
# org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
# org.apache.log4j.RollingFileAppender(文件大小达到指定尺寸的时候产生一个新的文件)
# org.apache.log4j.WiterAppender(将日志讯息一串流格式发送到任意指定的地方)
# org.apache.log4j.JDBCAppender(将日志讯息保存到数据库中)
# org.apache.log4j.SMTPAppender(将日志信息以邮件的方式发送到指定的地方)
# --------------------------------------------------------------------------------
# 4、Layout设置日志信息的输出样式
# --------------------------------------------------------------------------------
# Layout提供的layout的方式:
# org.apache.log4j.HTMLLayout(一HTML表格形式布局)
# org.apache.log4j.SimpleLayout(包含日志讯息的级别和讯息字符串)
# org.apache.log4j.TTCCLayout(包含日志产生时间,执行者,类别等讯息)
# org.apache.log4j.PatternLayout(可以灵活的指定布局模式)
# --------------------------------------------------------------------------------
# org.apache.log4j.PatternLayout(可以灵活的指定布局模式)
# 定制所输出的日志信息的样式:
# %p   输出优先级别:DEBUG,INFO,WARN,ERROR,FATAL
# %r   输出字应用启动到输出该日志讯息所耗时秒数
# %t   输出产生该日志事件的线程名
# %f  输出日志讯息所属的类别的类别名
# %c  输出日志讯息所属的类的全名
# %d   输出日志时间点的日期或时间
# %d   {yyyy-MM-dd HH:mm:ss} 指定日期或时间格式
# %l  输出日志时间发生的位置,即输出日志讯息的语句处于他所在的类别的第几行
# %m  输出代码中指定的讯息
# %n  输出一个换行符号
# --------------------------------------------------------------------------------

4、Log4jConfigListener源码(要有spring-web的依赖)

class Log4jConfigListener implements ServletContextListener
interface ServletContextListener extends EventListener
interface EventListener

动态的改变记录级别和策略,不需要重启Web应用,如《Effective EnterpriseJava》所说。

Log4jConfirgureListener也就是通过线程的方式扫描log4j.properties,当发现log4j的配置文件发生变化后就作出响应,从而做到了不重启应用修改日志的输出级别。




推荐文章(整理):

Apache log4j

log4j详解

Log4j 日志配置示例详解
Java程序员最常用的8个Java日志框架
在java、web应用、spring中使用
Log4jConfigListener动态改变记录级别及实现







【ROS机器人系统】实验4 ROS简单应用:激光SLAM与导航 ROS简单应用:激光SLAM与导航 (1)了解机器人和SLAM之间关系 (2)了解激光SLAM (3)了解gmapping和导航 阅读详情

相关推荐

DeepSeek绝了!3分钟生成PPT,专治“五彩斑斓的黑“!!(保姆教程)

DeepSeek绝了!3分钟生成PPT,专治"五彩斑斓的黑"!!(保姆教程)

yizhen91y的博客 4万+

Log4j学习笔记

Log4j学习笔记1 入门实例2 Log4j基本使用方法2.1 定义配置文件 1 入门实例 我这里在我的Maven项目中先引入log4j的包 <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.12<...

Snail_565的博客 1365

光互联技术演进:OIO、OBO、NPO、CPO四种方案对比与选型指南

光互联技术是解决高速数据中心和AI算力集群带宽瓶颈的关键路径。其核心原理是将光电转换点从面板向交换芯片逐步拉近,以缩短电通道、降低功耗并改善信号完整性。按照光电转换位置与芯片的距离,光互联可分为OIO、OBO、NPO和CPO四种技术路线,各自在功耗、可维护性和成熟度上存在显著差异。在AI训练集群、运营商网络等场景中,选型需综合考量功耗预算、运维体系和供应链生态。本文深入拆解这四种方案的技术细节、工程挑战与部署策略,为光互联技术选型提供实操参考。

weixin_33393017的博客 169

最详细的Log4J使用教程

地址:http://www.codeceo.com/log4j-usage.html 日志是应用软件中不可缺少的部分,Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录。在apache网站:jakarta.apache.org/log4j可以免费下载到Log4j最新版本的软件包。 一、入门实例 1.新建一个JAva工程,导入包log4j-1.2.17.jar,整个...

路漫漫其修远兮 24万+

如何搭建pikachu靶场

Pikachu靶场本地搭建指南 下载安装PHPStudy并启动Apache/MySQL服务 获取Pikachu靶场源码并解压到网站根目录 配置数据库连接信息(修改config.inc.php文件) 创建pikachu数据库(用户名/密码设为root) 访问http://localhost/pikachu测试功能 常见问题:数据库连接失败需检查服务状态和配置信息,页面报错需检查PHP版本兼容性。建议使用PHP7.3/7.4版本,在隔离环境中搭建使用。 (150字)

2401_85351702的博客 1279

基于STM32LXXX的模数转换芯片ADC(TLA2528IRTER)驱动C程序设计

define TLA2528_ADDR 0x12 << 1 // 用于HAL传输的8位地址(写入为0x24,读取为0x25)// 100kHz (示例值,需根据实际时钟计算)#define TLA2528_REG_PIN_CFG 0x00 // 引脚配置寄存器。#define TLA2528_REG_CHN_SEL 0x01 // 通道选择寄存器。

myron6688的博客 230

Log4j详细使用教程

日志是应用软件中不可缺少的部分,Apache的开源项目Log4j是一个功能强大的日志组件,提供方便的日志记录。在apache网站:jakarta.apache.org/log4j 可以免费下载到Log4j最新版本的软件包。

Evankaka的专栏 5万+

超大规模系统(千万级用户)中实现字段级权限控制

摘要:本文提出了一套分布式架构下的字段级权限优化方案,结合RBAC+ABAC混合模型与技术手段实现性能与安全的平衡。方案包括:1)权限模型优化,采用RBAC预计算基础权限与ABAC动态校验敏感字段;2)数据层优化,实现动态字段过滤与加密存储;3)多级缓存策略与预计算机制提升性能;4)分布式架构设计,通过网关校验和策略引擎集群保证扩展性。最终在千万级用户系统中实现99.9%可用性,权限校验延迟控制在50ms以内。

从技术实践立足,从项目管理方法论延伸思考 1355

Java log日志输出

在Spring框架中添加日志功能: pom.xml 1 2 log4j 3 log4j 4 1.2.17 5 web.xml 1 2 3 Log4JInitServlet 4 class>com.rain.log.Log4JInitServletclass> 5

qq_31600497的博客 1527

Siemens SIMATIC软件二次开发:使用C#进行SIMATIC软件二次开发

通过使用OPC-UA通信协议和S7通信库,可以有效地在C#应用程序中与Siemens SIMATIC软件进行数据交换。OPC-UA提供了一个标准化的平台,而S7通信库则提供了直接访问PLC数据的能力。掌握这两种通信方式,将极大地增强在工业自动化领域的二次开发能力。在Siemens SIMATIC软件中,自定义功能块开发是实现二次开发的关键步骤之一。通过C#,可以创建高度定制化的功能块,以满足特定的控制需求。下面,我们将通过一个示例来展示如何使用C#开发一个自定义功能块。OPC-UA通信。

kkchenjj的博客 1417

UCIE Specification详解(七)

Logical Physical Layer(逻辑物理层)

Crazzy_M的博客 1692

log4j的使用 (四步轻松看懂)

使用log4j步骤: 1.引入jar文件 2.添加配置文件:配置文件名必须是log4j.properties,位置必须放在src下面 3.创建日志对象:引入的是import org.apache.log4j.Logger; 4.调用日志对象中的方法记录日志内容 根据要输出的日志的级别,调用相应的方法 debug —>info ----->warn---->error---->fatal 调试 一般信息 警告 错误 致命错误 管理系统:添加,修改,删.

wuyxking的博客 2187

Android Input——输入系统介绍(一)

Input 系统对于提供流畅、灵敏和一致的用户交互体验至关重要,它需要在不同的设备、场景和应用中保证输入事件的正确性、及时性和安全性。Android 输入系统是一个复杂但高效的设计,旨在处理来自各种输入设备(如触摸屏、键盘等)的用户交互,并将这些交互转换为应用程序可以理解和响应的形式。EventHub:输入系统的最底层,直接与硬件通信,监听和读取输入设备的原始事件。:从 EventHub 获取原始输入事件,对其进行解析,转化为更高层次的事件,以便上层应用或服务能够理解。

小旭的专栏 1714

[java][log4j]最详细的Log4j使用教程

其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。当然除了上面的配置方法,还有其它,比如做一个J2EE应用,在J2EE应用使用Log4j,必须先在启动服务时加载Log4j的配置文件进行初始化,可以在web.xml中进行。配置文件的大致内容:log4j可以指定输出的log级别的最低等级,以及log的输出配置格式,每个log可以指定多个输出方式。

一名不太专业的程序员 4301

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

[转]最详细的Log4j使用教程

最详细的Log4j使用教程 转载于:https://www.cnblogs.com/jasonzeng888/p/6050864.html

weixin_30846599的博客 82

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Log4j最详细的使用教程

最详细的log4j使用教程,附加案例!

java落花雨的博客--- 1万+
上一篇: maven的使用教程
下一篇: Log4j使用教程
AndyChen9988
博客等级 码龄11年 276粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值