log4j配置用法超详细总结

Log4j配置详细讲解

1.安装Log4j相关包

 <dependency> 
    <groupId> log4j </ groupId> 
    <artifactId> log4j </ artifactId> 
    <version> 1.2.17 </ version> 
</依赖> 

2.log4j基本配置

2.1配置根logger定义示例

#配置根Logger 
log4j.rootLogger = [level],appenderName1,appenderName2,... 
#配置日志信息输出目的地Appender 
log4j .appender.appenderName(rootlogger定义的名称)= fully.qualified.name.of.appender.class 
  log4j.appender.appenderName.option1 = value1 
  ... 
  log4j.appender.appenderName.optionN = valueN #配置日志信息的格式(布局)


log4j.appender.appenderName.layout  =  fully.qualified.name.of.layout.class 





2.1.1日志level

    Log4j的日志级别从低到高顺序为:ALL < DEBUG < INFO < WARN < ERROR < FATAL < OFF,当定义了日志级别为WARN后,那么比它高的级别(ERROR < FATAL)会打印出来。

    Log4j由三个重要的组件构成:

  • 日志信息的优先级:日志信息的优先级从高到低有FATAL、ERROR、WARN、INFO、DEBUG,分别用来指定这条日志信息的重要程度;
  • 日志信息的输出目的地:日志信息的输出目的地指定了日志将打印到控制台、文件中还是数据库中
  • 日志信息的输出格式:控制了格式化输出日志信息的显示内容

其中[level]是其日志输出级别,五种级别分别为

lever数字代号描述
FATAL0指出每个严重的错误事件将会导致应用程序的退出
ERROR3指出虽然发生错误事件,但仍然不影响系统的继续运行
WARN4表明会出现潜在错误的情形
INFO6指定能够突出在粗粒度级别的应用程序运行情况的信息的消息
DEBUG7指定细粒度信息事件是最有用的应用程序调试

2.2log4j配置信息详解

配置信息定义方法
Appender日志输出目的地org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),< BR /> org.apache.log4j.WriterAppender(将将日志信息以流格式发送到), < BR /> org.apche.log4j.jdbc.JDBCAppender(连接数据库,将日志信息导入数据中)
layout:日志输出格式org.apache.log4j.HTMLLayout(以HTML表格形式布局), < BR /> org.apache.log4j.PatternLayout(可以可以灵活地指定布局模式), < BR /> org.apache .log4j.SimpleLayout(包含日志信息的级别和信息字符串), < BR /> org.apache.log4j.TTCCLayout(包含日志产生的时间,线程,类别等等信息)
参数打印%m: 输出代码中指定的消息,
%L: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名,发生的线程,以及在代码中的行数,
%p: 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL,
%F: 输出日志消息产生时所在的文件名称,
%L: 输出代码中的行号,
%d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},输出类似:2002年10月18日 22 : 10 : 28 , 921 ,

%r: 输出自应用启动到输出该log信息耗费的毫秒数 ,
%c: 输出所属的类目,通常就是所在类的全名 ,
%t: 输出产生该日志事件的线程名,
%n: 输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n” ,
%l: 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10 )
2.2.1ConsoleAppender
ConsoleAppender选项信息
Threshold指定日志消息的输出最低层次
ImmediateFlush默认值是true,意谓着所有的消息都会被立即输出
Target默认情况下是:System.out,指定输出控制台
Layout参考上文
2.2.2FileAppender
FileAppender选项信息
Threshold指定日志消息的输出最低层次
ImmediateFlush默认值是真实的,意道着所有的消息都会被立即输出
File= log.txt的指定消息输出到log.txt的文件
append默认值是true,即将消息追加到指定文件中,false指将消息覆盖指定的文件内容
2.2.3RollingFileAppender
RollingFileAppender进行选项信息
Threshold指定日志消息的输出最低层次
ImmediateFlush默认值是真实的,意道着所有的消息都会被立即输出
File= log.txt的指定消息输出到log.txt的文件
MaxBackupIndex指定可以产生的滚动文件的最大数
2.2.4 jdbc.jdbcAppender
jdbc.jdbcAppender选项信息
URL填写数据连接地址
driver指定连接驱动
user用户名
password密码
sql写入的sql语句

2.3log4j配置文件示例

log4j.appender.FILE=org.apache.log4j.FileAppender
##### Set the name of the file
log4j.appender.FILE.File=E:/log.log
##### Set the immediate flush to true (default)
log4j.appender.FILE.ImmediateFlush=true
##### Set the threshold to debug mode
log4j.appender.FILE.Threshold=debug #输出Debug级别(含Debug)以上的日志
##### Set the append to false, overwrite
log4j.appender.FILE.Append=ture
##### Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=${ConversionPattern}

2.3.3保存到数据库示例

#jdbc.JDBCAppender
#将日志输出到Oracle数据库 注意Date数据类型的格式
log4j.appender.DB=org.apache.log4j.jdbc.JDBCAppender

log4j.appender.DB.URL=jdbc:oracle:thin:@localhost:1521:orcl

log4j.appender.DB.driver=oracle.jdbc.OracleDriver

log4j.appender.DB.user=(填写自己的)

log4j.appender.DB.password=(填写自己的)

log4j.appender.DB.sql=INSERT INTO LOG(project_name,create_date,loglevel,class,method,message) values('  ',to_date('%d{yyyy-MM-dd HH:mm:ss}','yyyy-MM-dd HH24:mi:ss'),'%p','%C','%M','%m')

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

3.log4j高级配置

3.1通过邮件发送日志信息

3.3.1依赖包
<!-- Email -->
<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mail</artifactId>
    <version> 1.4 </ version> 
</ dependency> 
<dependency>
    <groupId>javax.activation</groupId>
    <artifactId>activation</artifactId>
    <version>1.1.1</version>
</dependency>

3.3.2配置文件

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

# 日志的错误级别-只有error才能输出,其他的不能输出

#该级别限定为出现error后是否将error之后的info,warn,debug等信息输出,

log4j.appender.MAIL.Threshold=ERROR

# 缓存文件大小,日志达到512K时发送Email

log4j.appender.MAIL.BufferSize=512

# 发送邮件的服务器

log4j.appender.MAIL.SMTPHost=smtp.qq.com

# 邮件的标题

log4j.appender.MAIL.Subject=Log4J ErrorMessage

# 用户名

log4j.appender.MAIL.SMTPUsername=1111@qq.com

# 密码

log4j.appender.MAIL.SMTPPassword=000

# 发件人地址

log4j.appender.MAIL.From=1111@qq.com

# 日志邮件的接收者

log4j.appender.MAIL.To=1111@qq.com

# 日志PatternLayout

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

# 日志的格式

log4j.appender.MAIL.layout.ConversionPattern=[ErrorMessage] %d - %c -%-4r [%t] %-5p %c %x - %m%n





参考:
https://blog.csdn.net/azheng270/article/details/2173430/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值