日志文件--------log4j

一、日志概念的介绍

Log4j由三个重要的组件构成:Loggers(日志记录器)Appenders(输出源)Layouts(布局格式)

三个核心概念:

公共类     Logger       负责处理日志记录的大部分操作。 
公共接口   Appender     负责控制日志记录的输出。 
公共抽象类  Layout     负责格式化Appender的输出

日志信息的优先级从高到低有ERRORWARNINFODEBUG,分别用来指定这条日志信息的重要程度;日志信息的输出目的地指定了日志将打印到控制台还是文件中;而输出格式则控制了日志信息的显示内容。

log4j规定了默认的几个级别:

ALL < DEBUG < INFO <WARN < ERROR < FATAL < OFF

这里要说明一下:

1)          级别之间是包含的关系,意思是如果你设置日志级别是trace,则大于等于这个级别的日志都会输出。

# ERROR打印的就是FATAL级别致命错误和ERROR级别的错误

 

2)这不同的级别的含义大家都很容易理解,这里就简单介绍一下:

扫描二维码关注公众号,回复: 2148771 查看本文章

trace是追踪,就是程序推进一下,你就可以写个trace输出,所以trace应该会特别多,不过我们可以设置日志级别不让他输出。

debug调试么,我一般就只用这个作为最低级别,trace压根不用。

 

info#设置成INFO就是一些代码执行过程当中的跟踪消息等,也就是说比较重要的信息,这个用的最多了。

 

warn有些信息不是错误信息,但是也要给程序员的一些提示,类似于eclipse中代码的验证不是有error warn(不算错误但是也请注意,比如以下depressed的方法)。

 

error错误信息。用的也比较多。

 

fatal级别比较高了。重大错误,这种级别你可以直接停止程序了,是不应该出现的错误么!不用那么紧张,其实就是一个程度的问题。

1.     #自定义样式  

2.     #%c   输出所属的类目,通常就是所在类的全名

3.     #%C  输出Logger所在类的名称,通常就是所在类的全名

4.     #%d   输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyMMM dd HH:mm:ss , SSS}%d{ABSOLUTE}%d{DATE}

5.     #%F   输出所在类的类名称,只有类名。

6.     #%l    输出语句所在的行数,包括类名+方法名+文件名+行数

7.     #%L   输出语句所在的行数,只输出数字

8.     #%m  输出代码中指定的讯息,如log(message)中的message

9.     #%M  输出方法名

10.  #%p   输出日志级别,即DEBUGINFOWARNERRORFATAL

11.  #%r   输出自应用启动到输出该log信息耗费的毫秒数

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

13.  #%n   输出一个回车换行符,Windows平台为“/r/n”Unix平台为“/n”

14.  #%%  用来输出百分号“%”

 

二、读取日志文件

# 这里是调试,所以是DBUG级别

Log4j中有一个根记录器rootLogger,它是所有Logger的父类。
#
并且日志记录器我们是可以写好多份的,每一份可以写不同的名字

#比如我们的tomcat当中的日志文件就是这个原理

 

log4j.rootLogger=DEBUG, Console ,logfile

#
这个是根日志记录器,除了它以外其它的都是它的子记录器

# 设置Logger输出级别和输出目的地
#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
#会有不同的输出目的的,此处就是在控制台上面
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
#确定一种输出的格式
log4j.appender.Console.layout.ConversionPattern=

#具体的格式由这个表达式来格式化

%d{ABSOLUTE}%5p %t %c{2}:%L - %m%n

log4j.logger.java.sql.ResultSet=INFO
log4j.logger.org.apache
=INFO
log4j.logger.java.sql.Connection
=DEBUG
log4j.logger.java.sql.Statement
=DEBUG
log4j.logger.java.sql.PreparedStatement
=DEBUG

### 把日志信息输出到文件###
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File
=qf.log
log4j.appender.logfile.layout
=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern
=%d{yyyy-MM-dd HH:mm:ss} %F %p %m%n

三、根据日志文件了解原理

Spring

首先就是加载Spring的配置文件

然后他会去下载一些解析xml文件所要需要的文件像xsd这些

然后它就用这些文件去解析xml文件

然后就是去加载bean的定义

确认产生对象的模式

然后去创建配置文件当中的对象

然后将这些对像缓存(其实就是Spring的上下文),为了解决循环引用带来的一些问题

         在有一个缓存的好处就是,用的时候直接去取就不用每次都去解析xml文件

然后完成创建,然后将创建的对下个返还给容器,供容器调配

然后容器就初始化完毕

猜你喜欢

转载自blog.csdn.net/qq_42112846/article/details/81005200