`

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 

Log4j使用方法
一般log4j遵循以下3步
(1)载入配置文件
PropertyConfigurator.configure(getServletContext().getRealpath("WEB-INF/log4j.properties"));
(2)获得日志记录器
//取得日志记录器Logger,名字为本类的名字。
Logger logger = Logger.getLogger(this.getClass());
(3)利用日志记录器生成日志信息,当以上2个必要步骤执行完毕后,便可以轻松地使用不同优先级的日志记录语句插入想要记录日志的任何地方了。
logger.fatal("这是一条从TestServlet产生的fatal信息!");
logger.error("这是一条从TestServlet产生的error信息!");
logger.warn("这是一条从TestServlet产生的warn信息!");
logger.debug("这是一条从TestServlet产生的debug信息!");
logger.info("这是一条从TestServlet产生的info信息!");

在web.xml中配置使用
<servlet>
<servlet-name>InitLog4j</servlet-name>
<servlet-class>InitLog4j</servlet-class>
<init-param>
<param-name>log4j</param-name>
<param-value>WEB-INF/log4j.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

在InitLog4j.java中载入
PropertyConfigurator.configure("");

在各处需要的地方调用
Logger logger = Logger.getLogger(this.getClass());
logger.info("这是一条从TestServlet产生的info信息!");



分享到:
评论

相关推荐

    log4j相关jar

    log4j相关支持的jar Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条...

    log4j相关jar包

    包含log4j、slf4j以及log4j2相关jar包和相关桥接包,主要实现程序的日志输出功能

    log4j 相关资料

    log4j 相关资料

    log4j相关包 需要的下 log4j-1.2.14.jar

    log4j相关包 需要的下 log4j-1.2.14.jar 保证能用

    slf4j-log4j相关jar

    slf4j-log4j相关jar,用slf4j接口实现Log4j日志记录。

    logging-log4j2-log4j-2.15.0-rc2.zip maven 资源库

    针对Log4j 2 远程代码执行漏洞,需要用到的升级资源包,适用于maven资源库,包括log4j,log4j-core,log4j-api,log4j-1.2-api,log4j-jpa等全套2.15.0 maven资源库jar包。如果是maven本地仓库使用,需要将zip包解压...

    log4j.jar各个版本

    apache-log4j-1.2.15.jar, apache-log4j-extras-1.0.jar, apache-log4j-extras-1.1.jar, apache-log4j.jar, log4j-1.2-api-2.0.2-javadoc.jar, log4j-1.2-api-2.0.2-sources.jar, log4j-1.2-api-2.0.2.jar, log4j-...

    若依框架使用的log4j2.16.0,修复log4j漏洞log4j2下载最新log4j2.16.0下载

    若依框架使用的log4j2.16.0,修复log4j漏洞log4j2下载最新log4j2.16.0下载

    Log4J相关jar包.rar

    log4J用于设置日志

    Log4j的相关资料

    Log4j的相关资料 其中包括个人积累收集的: Log4j简明手册 log4j使用大全 深入学习log4j 关于Log4j比较全面的配置 Java logging API如何与log4j较量 在Java应用软件中加入logging 等许多...

    log4j-core-2.15.0.jar log4j-2.15.0-rc2

    Apache log4j2零日漏洞,根据 log4j-2.15.0-rc2 版本编译生成log4j-api-2.15.0.jar 1.解压你的jar jar xvf XXX.jar 2. 删除旧版本jar cd ./BOOT-INF/lib rm -rf log4j-api-*.jar 3. 上传新版本log4j-api-2.15.0....

    apache-log4j-2.17.0 核心jar包

    Log4j 是一个日志记录框架,Log4j 2 是对 Log4j 的升级,提供了重大改进,超越其前身 Log4j 1.x,并提供许多其它现代功能 ,例如对标记的支持、使用查找的属性替换、lambda 表达式与日志记录时无垃圾等。 Apache ...

    log4j-api-2.15.0.jar log4j-2.15.0-rc2

    Apache log4j2零日漏洞,根据 log4j-2.15.0-rc2 版本编译生成log4j-api-2.15.0.jar 1.解压你的jar jar xvf XXX.jar 2. 删除旧版本jar cd ./BOOT-INF/lib rm -rf log4j-api-*.jar 3. 上传新版本log4j-api-...

    Log4j2简介及与Log4j效率对比

    描述Log4j2的配置详情及相对Log4j的优点,包括效率测试程序

    Log4j日志包

    log4j.rootLogger=debug,CONSOLE,testfile,A1,MAIL ################### # Console Appender ################### log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.Target=...

    老生常谈Log4j和Log4j2的区别(推荐)

    下面小编就为大家带来老生常谈Log4j和Log4j2的区别(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    log4j的基础知识

    在强调可重用组件开发的今天,除了自己从头到尾开发一个可重用的日志操作类外,Apache为我们提供了一个强有力的日志操作包-Log4j。  官方站点:http://logging.apache.org/log4j/  此外,通过Log4j其他语言接口...

    log4j相关配置文件

    Tomcat8下使用Log4j 接管 catalina.out文件过大问题 解决办法就是 log4j 更改,文件生成方式,按天存放,解决日志过大问题

    log4j+slf4j实现 log4j测试代码,log4j+slf4j实现 log4j测试代码

    log4j+slf4j实现 log4j测试代码,log4j+slf4j实现 log4j测试代码,

    修复log4j漏洞log4j2下载最新log4j2.16.0下载 log4j-api-2.16.0.jar

    apache下载太慢,特搬到国内下载。修复log4j漏洞log4j2下载最新log4j2.16.0下载

Global site tag (gtag.js) - Google Analytics