概述
概念
Log4j是Apache的一个开源项目,是一个使用简单灵活,功能强大,应用广泛的日志工具。
优点
- 可以控制级别信息输出
- 可以控制信息输出的目的地
- 可以控制信息输出的格式
以上都只需要更改log4j的配置文件就可以对日志信息输出进行相关的控制,不需要对源码内容进行修改。
Log4j的组件
- 日志器
在源代码中使用,提供了多种方法,用于输出程序中的调试、警告、错误等信息。 - 输出器
在配置文件中配置,提供了多种Appender实现类,可以决定日志的输出位置,常见的有文件输出、控制台输出等。 - 布局器
在配置文件中配置,可以决定日志输出的格式,后面详细介绍。
在eclipse中搭建Log4j环境
- 创建一个Web项目
- 在项目中导入log4j包
先下载log4j的jar包,然后在工程中build path->add External JARs->选择下载的jar,也可以将下载的jar包复制进项目下->add JARS 。如果是maven项目,可以直接在porm.xml文件中写入log4j的依赖。 - 在项目中添加log4j.properties配置文件。
在代码中使用Logger组件写相关的日志消息
package com.hnust.demo; import org.apache.log4j.Logger; public class Log4jDemo { //获取logger日志器 static Logger logger=Logger.getLogger(Log4jDemo.class); public static void main(String[] args) { // TODO Auto-generated method stub logger.debug("调试信息"); logger.info("普通信息"); logger.warn("警告信息"); logger.error("错误信息"); logger.fatal("致命信息"); } }
以上logger使用的五个方法从debug到fatal代表日志信息的从低到高的级别。后续再配置文件中填写级别时,只有与选择的级别相同和比选择的级别高的信息才会输出。
根据需求在log4j.properties文件中配置Log4j的Logger,Appender,Layout组件。
根日志器配置格式
log4j.rootLogger=[level],appenderName1,appenderName2…..
level是指输出日志信息的级别,然后可以指定若干个Appender输出器名。Appender配置格式
log4j.appender.[AppenderName]=org.apache.log4j.[AppenderType]
appenderName是自定义的Appender输出器名
AppenderType是指Appender输出器类型,以下是可供使用的输出器类型。名称 描述 AsyncAppender 使用一个单独线程记录日志,实现异步处理日志事件。 CassandraAppender 将日志信息输出到一个Apache的Cassandra数据库 ConsoleAppender 将日志信息输出到控制台 FailoverAppender 包含其他appenders,按顺序尝试,直至成功或结尾 FileAppender 一个OutputStreamAppender,将日志输出到文件 FlumeAppender 将日志输出到Apache Flume系统 JDBCAppender 将日志通过JDBC输出到关系型数据库 JMS Appender 将日志输出到JMS(Java Message Service) JPAAppender 将日志输出到JPA框架 HttpAppender 通过HTTP输出日志 KafkaAppender 将日志输出到Apache Kafka MemoryMappedFileAppender 将日志输出到一块文件关联的内存 NoSQLAppender 将日志输出到NoSQL数据库,如MongoDB OutputStreamAppender 将日志输出到一个OutputStream RandomAccessFileAppender 性能比FileAppender高20%~200%的文件输出Appender RewriteAppender 允许对日志信息进行加工 RollingFileAppender 按log文件最大长度限度生成新文件 RollingRandomAccessFA 添加了缓存的RollingFileAppender RoutingAppender 将日志事件分类,按条件分配给子appender SMTPAppender 将日志输出到邮件 SocketAppender 将日志输出到一个Socket SyslogAppender 是一个SocketAppender,将日志输出到远程系统日志 ZeroMQ/JeroMQ Appender 使用JeroMQ库将日志输出到ZeroMQ终端 Layout配置格式:
log4j.appender.[AppenderName].layout=org.apache.log4j.[LayoutType]
LayoutType是指Layout布局器类型,以下是布局器的类型类型 功能 PatternLayout 根据指定的转换模式格式化日志输出 HTMLLayout 格式化日志输出为HTML表格 XMLLayout 格式化日志输出为XML文件 SimpleLayout 以一种非常简单的方式格式化日志输出 TTCCLayout 包含日志产生的时间、线程、类别等信息
log4j使用效果
- 使用最简单的log4j配置运行效果如下
log4.properties配置文件内容
#根日志器定义
log4j.rootLogger=info,myconsole
#Appender输出器配置
log4j.appender.myconsole=org.apache.log4j.ConsoleAppender
#Layout布局器配置
log4j.appender.myconsole.layout=org.apache.log4j.SimpleLayout
运行结果如下:
- 使用多种Appender和多种格式输出
log4.properties配置文件内容
#根日志器定义
log4j.rootLogger=warn,myconsole,myfile
#Appender输出器配置
#Appender1
log4j.appender.myconsole=org.apache.log4j.ConsoleAppender
#Appender2
log4j.appender.myfile=org.apache.log4j.FileAppender
log4j.appender.myfile.File=D:\log4.txt
#Layout布局器配置
#Layout1
log4j.appender.myconsole.layout=org.apache.log4j.SimpleLayout
#Layout2
log4j.appender.myfile.layout=org.apache.log4j.PatternLayout
log4j.appender.myfile.layout.ConversionPattern=%d{HH:mm:ss} %c-%M-%m%n
log4j.appender.myfile.layout.ConversionPattern后面的是一个类似于正则表达式的式子,可以根据自己需求规范化输出的格式。
常用参数如下:
#%c 输出所属的类目,通常就是所在类的全名
#%C 输出Logger所在类的名称,通常就是所在类的全名
#%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},%d{ABSOLUTE},%d{DATE}
#%F 输出所在类的类名称,只有类名。
#%l 输出语句所在的行数,包括类名+方法名+文件名+行数
#%L 输出语句所在的行数,只输出数字
#%m 输出代码中指定的讯息,如log(message)中的message
#%M 输出方法名
#%p 输出日志级别,即DEBUG,INFO,WARN,ERROR,FATAL
#%r 输出自应用启动到输出该log信息耗费的毫秒数
#%t 输出产生该日志事件的线程名
#%n 输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n”
#%% 用来输出百分号“%”
运行结果:
(文件名和路径log4j.appender.myfile.File=D:log4.txt)
总结
本文介绍了Log4j的入门使用,具体运用在大型项目中还需要后续慢慢积累学习,由于它的灵活性和使用范围之广,需要查找Log4j相关文档学习。
最后
以上就是自信野狼为你收集整理的Log4j日志工具使用的全部内容,希望文章能够帮你解决Log4j日志工具使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复