没有艰辛,便无所得。

Log4j0:

1:log4j格式详解1.1:日志级别

log4j.rootLogger=,

日志级别:ALL<DEBUG<INFO<WARN<ERROR<FATAL<OFF,不区分大小写

CONSOLE:控制台

注意,需在控制台输入,只需将其中一个

注意,rootLogger默认是对整个工程生效

注意,如果只想对某些包操作,那么:

注意,这样做可以区分

注意,如果末尾为R

注意,如果没有为

1.2:日志输出类型

log4j.appender.appender1=org.apache.log4j.[控制台|]

1.2.1:ConsoleAppender(控制台)

Threshold=WARN:指定日志消息的输出最低层次。

ImmediateFlush=true:

Target=System.err

1.2.2:FileAppender(文件)

Threshold=WARN:指定日志消息的输出最低层次。

ImmediateFlush=true:

File=mylog.txt:

Append=false:

1.2.3:DailyRollingFileAppender(每天产生一个日志文件)

Threshold=WARN:指定日志消息的输出最低层次。

ImmediateFlush=true:

File=mylog.txt:

Append=false:

DatePattern=

1)

2)

3)

4)

5)

6)

1.2.4:RollingFileAppender(文件大小到达指定尺寸时产生一个新的文件)

Threshold=WARN:指定日志消息的输出最低层次。

ImmediateFlush=true:

File=mylog.txt:

Append=false:

MaxFileSize=100KB:

MaxBackupIndex=2:指定可以产生的滚动文件的最大数。

1.2.5:WriteAppender(将日志信息以流格式发送到任意指定的地方)1.2.6:JDBCAppender(将日志信息保存到数据库中)

配置参数详见

1.2.7:JDBCAppender(将日志发送到邮箱)

配置参数详见

1.3:日志输出路径

log4j.appender.appender1.File=[下列参考]

#0:绝对路径:f:/logs/backup.log

#1:相对路径${user.home}/logs/backup.log

#2:相对路径:/logs/backup.log

#3:

#4:

1.4:日志布局格式

log4j.appender.appender1.layout=org.apache.log4j.[HTMLLayout|SimpleLayout|TTCCLayout]

HTMLLayout

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

TTCCLayout(包含日志产生的时间,执行绪,类别等信息)

PatternLayout(可以灵活的指定布局格式,常用)

1.5:日志输出格式

log4j.appender.appender1.layout.ConversionPattern=[下列参考]

例如,

%c输出日志信息所属的类的全名

%d

%f输出日志信息所属的类的类名

%l输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行

%m

%n

%p

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

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

可参考:

1.6:其他配置

log4j.logger.org.springframework=OFF

log4j.logger.org.apache.struts2=OFF

log4j.logger.com.opensymphony.xwork2=OFF

log4j.rootLogger=INFO,Error,

可参考

1.7:总结一下:

Logger类:完成日志记录,设置日志信息级别

Appender类:决定日志去向,终端、DB、硬盘

Layout类:决定日志输出的样式,,例如包含当前线程、行号、时间

2:使用场景2.1:按日期产生日志文件

#

log4j.rootLogger=ERROR

#DailyRollingFileAppender每天产生一个日志文件

log4j.appender.R=org.apache.log4j.DailyRollingFileAppender

#设置日志文件保存路径

log4j.appender.R.File=log/backup.log

#日志输出格式

log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-ddHH\:mm\:ss}[%c]-[%p]%m%n

#

log4j.appender.R.DatePattern=’.’yyyy-MM-dd

#日志布局格式

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

2.2:按文件大小产生日志文件

#

log4j.rootLogger=ERROR

#RollingFileAppender:文件大小到达指定尺寸时产生一个新的文件

log4j.appender.R=org.apache.log4j.RollingFileAppender

#设置日志文件保存路径

log4j.appender.R.File=log/backup.log

#

log4j.appender.R.MaxFileSize=3KB

#设置日志文件备份的最大序号

log4j.appender.R.MaxBackupIndex=10

#日志输出格式

log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-ddHH:mm:ss}[%c]-[%p]%m%n

#日志布局格式

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

2.3:日志发到邮箱2.3.1:

log4j-1.2.15.jar

mail.jar

activation.jar

2.3.2:测试环境是否能发送邮件

importorg.apache.log4j.Logger;

importorg.apache.log4j.PatternLayout;

importorg.apache.log4j.net.SMTPAppender;

publicclassTestLog4jSendMail{

staticLoggerlogger=Logger.getLogger(TestLog4jSendMail.class);

SMTPAppenderappender=newSMTPAppender();

publicTestLog4jSendMail(){

try{

appender.setSMTPUsername("username");

appender.setSMTPPassword("password");

appender.setTo("xxx@xxx.com");

appender.setFrom("yyy@yyy.com");

//SMTP服务器smtp.163.com

appender.setSMTPHost("smtp.163.com");

appender.setLocationInfo(true);

appender.setSubject("TestMailFromLog4J");

appender.setLayout(newPatternLayout());

appender.activateOptions();

logger.addAppender(appender);

logger.error("HelloWorld");

}catch(Exceptione){

e.printStackTrace();

logger.error("PrintingERRORStatements",e);

}

}

publicstaticvoidmain(Stringargs[]){

newTestLog4jSendMail();

}

}

2.3.3:配置文件

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

#日志的错误级别

log4j.appender.MAIL.Threshold=ERROR,INFO,DEBUG

#log4j.appender.MAIL.BufferSize=10

#发送邮件的服务器(smtp.163.com)

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

#邮件主题

log4j.appender.MAIL.Subject=ErrorMessage

#发送邮件箱的用户

log4j.appender.MAIL.SMTPUsername=xxx@163.com

#发送邮件箱的密码

log4j.appender.MAIL.SMTPPassword=xxx

#发送邮件箱

log4j.appender.MAIL.From=xxx@163.com

#接受邮件箱

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

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

#在

log4j.logger.com.study.logMail=ERROR,MAIL

2.3.4:反馈如下

2.4:日志保存到数据库2.4.1:创建数据库或表

CREATEDATABASElog4jdb

CREATETABLERESLOG(

createTimeVARCHAR(20),#日志记录时间

threadVARCHAR(200),#线程名称

levelTextVARCHAR(100),#

logclassVARCHAR(1000),#发生事件的类全路径

messageVARCHAR(4000),#日志消息

usernameVARCHAR(4000)#用户

)#

2.4.2配置参数

#设置捕获的级别

log4j.rootLogger=ERROR

#设置为日志保存到数据库

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

#

#

log4j.appender.db.BufferSize=10

#数据库连接字符串

log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/log4jdb

#数据库驱动,要求导入jar!!!

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

#数据库用户名

log4j.appender.DATABASE.user=root

#数据库密码

log4j.appender.DATABASE.password=123456

#

诚实是人生绝妙的法宝。虽然对人诚实,

没有艰辛,便无所得。

相关文章:

你感兴趣的文章:

标签云: