log4j日志的使用步骤和基本技术知识

*****************************log4j日志的使用步骤

第一步:添加jar包支持

首先建立一个WEB工程,去log4j官网下log4j的JAR包导入到工程的lib目录下

第二步:添加并载入配置文件

在src目录下建一个log4j.properties 文件

log4j启动时,默认会寻找source folder(存放java源代码的文件夹,当然也包括一些package文件夹,还可以包括其他文件,即使src)下的log4j.xml配置文件,若没有,会寻找log4j.properties文件。然后加载配置。配置文件放置位置正确,就不需要在程序中手动加载log4j配置文件。

PropertyConfigurator.configure("log4j.properties") 默认读取的是项目根目录的路径。此时的log4j.properties要放在项目目录下。

一个java项目会有很多的配置文件,建议把所有的配置文件放到一个文件夹下,例如,放到config文件夹。那么在读取这些配置文件的时候要加上子目录名称。PropertyConfigurator.configure("config/log4j.properties");

该配置文件内容可以为:

### 设置logger级别 ###

log4j.rootLogger=INFO,stdout,A1

### appender.stdout输出到控制台 ###

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] [BYSXXGLXT] %d{yyyy-MM-dd HH:mm:ss}: %-4r [%-5p] [%t] ( %F,%L ) - %m%n

### appender.A1输出到日志文件 ###

log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender

log4j.appender.A1.File=${catalina.base}/logs/test.log  ###日志文件在tomcat的logs文件夹中###

##注意上面日志文件相对应用根目录路径的写法

log4j.appender.A1.DatePattern=‘.‘yyyy-MM-dd‘.log‘

log4j.appender.A1.Append=true

## 输出DEBUG级别以上的日志

log4j.appender.A1.Threshold=DEBUG

log4j.appender.A1.layout=org.apache.log4j.PatternLayout

log4j.appender.A1.layout.ConversionPattern= [%5p] [BYSXXGLXT] %d{yyyy-MM-dd HH:mm:ss}: %-4r     [%t] ( %F,%L ) - %m%n

第三步:获得日志记录器

//取得日志记录器Logger,名字为本类的名字。

Logger logger = Logger.getLogger(this.getClass());

第四步:利用日志记录器生成日志信息,当以上三个必要步骤执行完毕后,便可以轻松地使用不同优先级的日志记录语句插入想要记录日志的任何地方了。

logger.fatal("这是一条从TestServlet产生的fatal信息!");

logger.error("这是一条从TestServlet产生的error信息!");

logger.warn("这是一条从TestServlet产生的warn信息!");

logger.debug("这是一条从TestServlet产生的debug信息!");

logger.info("这是一条从TestServlet产生的info信息!");

**************以下是log4j的基本知识

Log4j是Jakarta下的一个开源代码的子项目,通过Log4j,可以使用定制的格式把调试信息和日志信息输出到一个或多个需要的地方。

Log4j的组成

Log4j包括3个很重要的组件:公共类Logger、公共接口Appender和公共抽象类Layout。

1、公共类Logger

日志记录器(Logger)是日志处理的核心组件,负责日志信息的生成。根据配置的日志级别对生成的日志进行输出或截屏。

级别 描述

OFF 关闭所有日志记录的输出

FATAL 输出将会导致应用程序退出的严重错误事件信息

ERROR 输出不影响系统继续运行的错误事件信息

WARN 输出会出现的潜在错误事件信息

INFO 输出应用系统的运行过程信息

DEBUG 输出应用程序的调试信息

ALL 打开所有日志记录的输出

2、公共接口Appender

Appender负责控制日志记录操作的输出,用以指定日志信息的输出目的地(如控制台、文件、回滚文件、发送日志邮件、输出到数据库日志表、自定义标签等)。

Appender名称 描述

ConsoleAppender 输出到控制台

FileAppender 输出到指定文件

RollingFileAppender 输出到文件,当文件大小到达指定尺寸的时候产生一个新文件

DailyRollingFileAppender 输出到文件,每天产生一个新文件

WriterAppender 将日志信息以流格式发送到任意指定的地方

JDBCAppender 输出到指定的数据库

SMTPAppender 以邮件形式发送日志信息

3、公共抽象类Layout

Layout负责格式化Appender输出

Log4j提供的layout格式有:

Layout名称 描述

SimpleLayout 包含日志信息的级别和信息字符串

PatternLayout 根据指定的转换模式格式化日志输出

HTMLLayout 以HTML表格形式输出

TTCCLayout 包含日志产生的时间、线程、类别等信息

Log4j提供的输出函数

参数名称 描述

%m 输出代码中指定的消息内容

%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL

%r 输出自应用启动到输出该log信息耗费的毫秒数

%c 输出所属的类别,通常就是所在类的全名

%t 输出产生该日志事件的线程名

%n 输出一个回车换行符

%d 输出日志时间点的日期或时间

%l 输出日志事件的发生位置,包括类名称,发生的线程,以及在代码中的行数

Log4j的配置文件

Log4j支持两种配置文件格式,一种是XML格式的文件,另一种是Java属性文件(键=值)

log4j.properties的示例

log4j.rootLogger=DEBUG,A1,A2,A3,A4,A5,A6

# 应用于控制台

log4j.appender.A1=org.apache.log4j.ConsoleAppender

log4j.appender.A1.layout=org.apache.log4j.PatternLayout

log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} [INFO] %m%n

# 应用于文件

log4j.appender.A2=org.apache.log4j.FileAppender

log4j.appender.A2.File=${catalina.home}/webapps/testLog/logging.log

log4j.appender.A2.Append=true

log4j.appender.A2.layout=org.apache.log4j.PatternLayout

log4j.appender.A2.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} [INFO] %m%n

# 应用于文件回滚

log4j.appender.A3=org.apache.log4j.RollingFileAppender

log4j.appender.A3.File=${catalina.home}/webapps/testLog/logging.log

log4j.appender.A3.Append=true

log4j.appender.A3.MaxFileSize=1000KB

log4j.appender.A3.MaxBackupIndex=1

log4j.appender.A3.layout=org.apache.log4j.PatternLayout

log4j.appender.A3.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} [INFO] %m%n

# 发送日志给邮件

log4j.appender.A4=org.apache.log4j.net.SMTPAppender

log4j.appender.A4.BufferSize=10

log4j.appender.A4.From=发件箱地址

log4j.appender.A4.SMTPHost=SMTP服务器

log4j.appender.A4.Subject=邮件标题

log4j.appender.A4.To=收件箱地址

log4j.appender.A4.layout=org.apache.log4j.PatternLayout

log4j.appender.A4.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} [INFO] %m%n

# 用于数据库

log4j.appender.A5=org.apache.log4j.jdbc.JDBCAppender

log4j.appender.A5.URL=jdbc:mysql://localhost:3306/test

log4j.appender.A5.driver=com.mysql.jdbc.Driver

log4j.appender.A5.user=root

log4j.appender.A5.password=root

log4j.appender.A5.sql=INSERT INTO LOG4J (Message) VALUES (‘%d{yyyy-MM-dd HH\:mm\:ss} [INFO] %m%n‘)

log4j.appender.A5.layout=org.apache.log4j.PatternLayout

log4j.appender.A5.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} [INFO] %m%n

# 应用每日生成一个日志文件

log4j.appender.A6=org.apache.log4j.DaliyRollingFileAppender

log4j.appender.A6.File=${catalina.home}/webapps/testLog/logging.log

log4j.appender.A6.DatePattern=yyyyMMdd-HH‘.log‘

log4j.appender.A3.layout=org.apache.log4j.PatternLayout

log4j.appender.A3.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} [INFO] %m%n

时间: 2024-11-05 17:25:35

log4j日志的使用步骤和基本技术知识的相关文章

日志组件系列:(5)让Eclipse/MyEclipse的控制台的log4j日志支持多种颜色

最终实现的效果如下: 1.知识准备 我们要谈到一个概念"ANSI escape sequences",它是什么,究竟有什么作用呢?"ANSI escape sequences"就是嵌入到文本中的"特殊字符",用来控制文本的格式和颜色. ANSI escape sequences are characters embedded in the text used to control formatting, color, and other outp

Log4j 日志详细用法

简单的说log4j就是帮助开发人员进行日志输出管理的API类库.它最重要的特点就可以配置文件灵活的设置日志信息的优先级.日志信息的输出目的地.日志信息的输出格式 Log4j 除了可以记录程序运行日志信息外还有一重要的功能就是用来显示调试信息. 程序员经常会遇到脱离java ide环境调试程序的情况,这时大多数人会选择使用System.out.println语句输出某个变量值的方法进行调试.这样会带来一个非常麻烦的问题:一旦哪天程序员决定不要显示这些System.out.println的东西了就只

Spring集成Log4j日志框架

1.日志系统介绍 slf4j,即简单日志门面(Simple Logging Facade for Java),不是具体的日志解决方案,它只服务于各种各样的日志系统.简答的讲就是slf4j是一系列的日志接口,而log4j是具体实现了的日志框架. slf4j与常用日志框架绑定关系,图片来源 2.Maven导入slf4j和log4j,编辑pom.xml <!-- 导入slf4j-log4j12,依赖slf4j-api和log4j,自动导入 --> <dependency> <gro

log4j日志输出到web项目指定文件夹

感谢 eric2500 的这篇文章:http://www.cxyclub.cn/n/27860/ 摘要:尝试将log4j的文件日志输出到web工程制定目录,遇到了很多问题,最终在eric2500的指导下搞定,下面是记录. 其原理在于log4j的配置文件支持服务器的vm的环境变量,如${oss.log4j.path},在log4j加载配置文件之前,先用 System.setProperty("","")设置好日志文件路径,这一操作通过一个初始的servlet来实现.

tomcat 6.x + log4j日志配置并按天(或大小)生成文件

tomcat日志,默认路径在${catalina.home}/logs目录下,默认使用的是tomcat自己封装的logging工具类,默认配置文件使用的${catalina.home}/conf/logging.properties 默认的配置不满足按天或按大小将日志区分,用以备份或转移或删除,经常会出现日志文件超大,磁盘空间不够的情况(就算磁盘够,一段时间后的日志也应该及时清理和压缩起来). 考虑到这种需求,使用log4j的配置,将tomcat的logging拦截起来,配置如下: 采用log4

Log4j日志组件的使用

日志是应用软件中不可缺少的部分,Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录.在apache网站:jakarta.apache.org/log4j 可以免费下载到Log4j最新版本的软件包. 1.新建一个Java工程,导入包log4j-1.2.17.jar,整个工程最终目录如下 2.src同级创建并设置log4j.properties 1 ### 设置### 2 log4j.rootLogger = debug,stdout,D,E 3 4 ### 输出信息到控制

Log4j日志操作详细用法

使用Log4j进行日志操作 在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作:跟踪代码运行时轨迹,作为日后审计的依据:担当集成开发环境中的调试器的作用,向文件或控制台打印代码的调试信息. 概述 1.1. 背景 在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作:跟踪代码运行时轨迹,作为日后审计的依据:担当集成开发环境中的调试器的作用,向文件或控制台打印代码的调

log4J日志器

在应用程序中输出日志有有三个目的: (1)监视代码中变量的变化情况,把数据周期性地记录到文件中供其他应用进行统计分析工作. (2)跟踪代码运行进轨迹,作为日后审计的依据. (3)担当集成开发环境中的调试器,向文件或控制台打印代码的调试信息. log4J日志器(http://jakarta.apache.org/log4j) JDK1.4 Logging日志器(JDK1.4自带) SimpleLog日志器(把日志消息输出到标准系统错误流System.err) NoOpLog(不输出任何日志信息)

SQL Server中事务日志管理的步骤,第5级:完全恢复模式管理日志

SQL Server中事务日志管理的步骤,第5级:完全恢复模式管理日志 作者:Tony Davis,2012/01/27 系列 本文是进阶系列的一部分:SQL Server中事务日志管理的步骤 当事情进展顺利时,无需特别注意事务日志的作用或工作方式.您只需要确信每个数据库都有正确的备份机制.当出现问题时,了解事务日志对于采取纠正措施很重要,特别是在需要紧急恢复数据库的时间点时!Tony Davis给出了每个DBA都应该知道的正确的细节级别. 在此级别中,我们将回顾在完全恢复模式下工作时进行日志备