idea工具java日志 Log4j+slf4j使用

参考博文:http://www.blogjava.net/zzzlyr/articles/353039.html

这几天一直在用logger记录日志,但一直不明白log4j.properties配置文件意思,下面看看其他博主文章给自己充充电。

本人认为日志记录不仅可以帮记录执行结果,看代码执行是否正常,并且在排查问题时也能很快帮助你定位有问题代码。

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class UpdateOrderStatusJob {
    private static Logger logger = LoggerFactory.getLogger(UpdateOrderStatusJob.class);

SLF4J经典应用:占位符

SLF4J的日志消息使用占位符"{}"代替了常用的字符串拼接,据官方说这样速度更快:

String address = "world";
logger.info("Hello {}",address ); // Hello world

注意:

1、#日记记录的优先级(低到高)

#  控制台显示的内容是:优先级大于等于log4j.properties中配置的信息。

# ALL< DEBUG < INFO < WARN < ERROR < FATAL < OFF.
# Log4j建议只使用FATAL ,ERROR ,WARN ,INFO ,DEBUG这五个级别。
# ERROR 为严重错误 主要是程序的错误
# WARN 为一般警告,比如session丢失
# INFO 为一般要显示的信息,比如登录登出
# DEBUG 为程序的调试信息


Log4j配置:

第一步:准备

1、slf4j-api-1.7.5.jar

  1. 2、slf4j-log4j12-1.7.5.jar

  2. 3、log4j-1.2.16.jar

  3. 4、log4j.properties(也可以是 log4j.xml,本例中用 log4j.propertes)

  4. 第二步:maven依赖jar包

第三步:在resource中配置log4j.properties配置文件。

#配置根Logger
log4j.rootLogger = [ level ] , appenderName1 , appenderName2 , …
#配置日志信息输出目的地Appender
log4j.appender.appenderName = 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
log4j.appender.appenderName.layout.option1 = value1
…
log4j.appender.appenderName.layout.optionN = valueN

    appenderName就是指定日志信息输出到哪个地方。可同时指定多个输出目的地。例:

# Global logging configuration
log4j.rootLogger=info,stdout, R
# 应用于控制台  
#Root Logger Configuration
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{HH\:mm\:ss} %c{1} - %m%n
#应用于日志文件
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=mat.log
log4j.appender.R.MaxFileSize=5MB
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss,SSS} [%c]-[%p] %m%n


log4j.rootLogger=info,stdout, R 定义 logger记录大于等于info优先级日志信息,stdout表示在控制台显示,R表示日志记录在文件中。

stdout:

log4j.appender.stdout=org.apache.log4j.ConsoleAppender  意思是把日志输出到控制台

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout   意思是日志在控制台显示布局模式

log4j.appender.stdout.layout.ConversionPattern=%d{HH\:mm\:ss} %c{1} - %m%n 表示日志输出的格式,%d{HH\:mm\:ss} %c{1} - %m%n表示时:分:秒 类名 日志信息 换行

R:

log4j.appender.R=org.apache.log4j.RollingFileAppender  :日志文件大小到达指定尺寸的时候产生一个新的文件

log4j.appender.R.File=mat.log 表示是放日志文件的路径

log4j.appender.R.MaxFileSize=5MB   表示指定日志文件大小

log4j.appender.R.layout=org.apache.log4j.PatternLayout  日志记录的布局模式

log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss,SSS} [%c]-[%p] %m%n 表示日志输出格式

年-月-日 时:分:秒 类名 优先级显示日志信息 换行


#appender名字定义

#appender名字定义
log4j.rootLogger=INFO,FILE,consoleAppender,RollingFile,MAIL,DailyRollingFile,DATABASE
log4j.addivity.org.apache=true

#配置日志信息输出目的地
#log4j.appender.appenderName = fully.qualified.name.of.appender.class
#(如:log4j.appender.RollingFile = org.apache.log4j.RollingFileAppender)
# 1.org.apache.log4j.ConsoleAppender(控制台)
# 2.org.apache.log4j.FileAppender(文件)
# 3.org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
# 4.org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
# 5.org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

#配置日志信息的格式
#log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
#(如:log4j.appender.RollingFile.layout = org.apache.log4j.HTMLLayout)
# 1.org.apache.log4j.HTMLLayout(以HTML表格形式布局),
# 2.org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
# 3.org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
# 4.org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)


#输出格式:layout中的参数都以%开始,后面不同的参数代表不同的格式化信息(参数按字母表顺序列出):

# %c 输出所属类的全名,可在修改为 %d{Num} ,Num类名输出的维(如:"org.apache.elathen.ClassName",%C{2}将输出elathen.ClassName)
# %d 输出日志时间其格式为 %d{yyyy-MM-dd HH:mm:ss,SSS},可指定格式 如 %d{HH:mm:ss}
# %l 输出日志事件发生位置,包括类目名、发生线程,在代码中的行数
# %n 换行符
# %m 输出代码指定信息,如info(“message”),输出message
# %p 输出优先级,即 FATAL ,ERROR 等
# %r 输出从启动到显示该log信息所耗费的毫秒数
# %t 输出产生该日志事件的线程名


#ConsoleAppender,控制台输出
#FileAppender,文件日志输出
#SMTPAppender,发邮件输出日志
#SocketAppender,Socket日志
#NTEventLogAppender,Window NT日志
#SyslogAppender,
#JMSAppender,
#AsyncAppender,
#NullAppender


第三步:下次再写



你可能感兴趣的:(idea工具java日志 Log4j+slf4j使用)