`
实学实战
  • 浏览: 15606 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
文章分类
社区版块
存档分类
最新评论

最详细的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核心
# --------------------------------------------------------------------------------
# 1Logger完成日志信息的处理,可以分成不同的级别记录日志信息,如:debuginfoerror
# --------------------------------------------------------------------------------
# Logger可以定义输出的层次和决定信息是否输出
# Logger输出的信息是有优先级别的: ALL,TRACE,DEBUG,INFO,WARN,ERROR,FATAL,OFF------级别由小到大
# 常用的有:DEBUG,INFO,WARN,ERROR
# --------------------------------------------------------------------------------
# 2Appender设置日志信息的去向  如:一个文件中,*.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(将日志信息以邮件的方式发送到指定的地方)
# --------------------------------------------------------------------------------
# 4Layout设置日志信息的输出样式
# --------------------------------------------------------------------------------
# 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动态改变记录级别及实现







分享到:
评论

相关推荐

    log4j使用教程(详解)

    - DEBUG:用于调试,是最详细的日志级别,通常在开发阶段使用。 - INFO:提供一般性的运行信息,例如服务启动、停止等。 - WARN:表示可能出现的问题,但程序仍能继续运行。 - ERROR:表示严重的错误,可能会...

    Log4j使用教程

    **Log4j使用教程** Log4j是一款广泛应用于Java开发中的日志记录框架,它提供了灵活的日志配置,便于调试、监控和维护应用程序。本文将详细介绍Log4j的基本概念、配置以及在实际项目中的应用。 ### 一、Log4j简介 ...

    Log4j教程

    这份教程旨在帮助开发者更好地理解和使用Log4j,提升项目开发的效率和质量。 总之,Log4j作为Java生态系统中的重要日志工具,其强大的功能和易用性使得它成为企业级应用的首选。通过深入学习和实践,你可以更有效地...

    log4j使用详细方法

    本文将详细介绍Log4j的配置方法、使用实例以及相关说明,旨在帮助读者快速掌握这一实用工具。 **一、Log4j的核心组件** 1. **Logger**: 日志记录器,负责实际的日志输出,可以根据不同的级别(DEBUG, INFO, WARN, ...

    log4j 2使用教程

    最新版log4j 2的使用教程,简明扼要,非常好用

    log4j教程

    ### Log4j教程:深入解析与实践 #### 引言 Log4j是Apache软件基金会下的一个开源项目,旨在提供一种灵活的日志记录机制,使开发者能够轻松地控制日志信息的流向、格式以及级别,而无需修改应用程序的源代码。这种...

    log4j使用详解 j2EE

    本文将详细介绍log4j的基本使用方法及其应用场景。 #### 二、log4j的核心组件 Log4j主要由三部分组成: 1. **日志记录器(Logger)**:负责发出日志消息。 2. **日志输出目标(Appender)**:决定日志信息被发送...

    Log4j 教程

    **Log4j 教程** Log4j 是一个广泛使用的 Java 日志框架,它为应用程序提供了灵活的日志记录功能。这个教程将深入讲解 Log4j 的核心概念、配置以及如何在实际项目中应用。 1. **日志的重要性** 在软件开发中,日志...

    log4j_jar包跟教程说明

    本教程将深入探讨Log4j的基本概念、配置及使用方法。 1. **Log4j简介** - Log4j是一个轻量级的日志记录工具,具有强大的可配置性和灵活性。 - 它提供了多种级别的日志记录,如DEBUG、INFO、WARN、ERROR和FATAL,...

    \使用高效的日志工具—log4j详细教程

    使用高效的日志工具—Log4J Log4J是Apache软件基金会Jakarta项目下的一个子项目,是用 Java编写的优秀日志工具包。通过Log4J可以在不修改代码的情况下,方便、灵活地控制任意粒度的日志信息的开启或关闭,然后使用...

    log4j-2.17.1的jar包,导入即可使用

    Log4j是Java编程语言中广泛使用的日志记录框架,特别是在企业级应用和大型系统中。这个"**log4j-2.17.1**"的版本是该框架的一个更新,提供了修复的安全漏洞和性能优化。以下是关于Log4j 2.17.1的一些关键知识点: 1...

    Log4j的简单使用教程

    以下是一个简单的示例,展示了如何在Java程序中使用Log4j: ```java import org.apache.log4j.Logger; import org.apache.log4j.BasicConfigurator; public class MyClass { private static final Logger logger ...

    log4J中文 教程 .pdf文件

    本教程将深入探讨Log4J的核心概念、配置方法以及实际应用。 **1. Log4J简介** Log4J是由Apache软件基金会开发的一个开源日志组件,主要针对Java应用程序。它提供了灵活的日志记录功能,包括不同的日志级别(DEBUG,...

    如何使用log4j详细说明

    log4j 使用的详细说明教程,新手快下。。

    log4j-api-2.12.4.ja和log4j-core-2.12.4.jar

    Log4j是Java编程语言中最常用的日志记录框架之一,由Apache软件基金会开发。它提供了灵活的日志记录功能,使得开发者能够轻松地控制日志信息的输出格式、输出位置以及输出级别。此次提及的`log4j-api-2.12.4.jar`和`...

    log4j2_detect_gui.zip

    为了应对这一挑战,开发者们推出了Log4j2检测工具,如"Log4j2_detect_gui.zip",本文将详细介绍这款工具的使用及Log4j漏洞的相关知识。 首先,我们要明白Log4j2Detect是一款用于检测Log4j漏洞的图形化界面工具,由...

Global site tag (gtag.js) - Google Analytics