Log4j的配置和使用

对log4j.jar和commons-logging的理解

log4j.jar和commons-logging.jar 要结合使用:只需要引入这两个包,再配置下log4j.properties文件即可。                                                    

log4j是标准,是底层,功能非常的强大。

而commons-logging.jar是对log4j.jar的封装,提供了简洁,统一的接口,不需要额外的配置,简单。

commons-logging.jar仅仅对log4j.jar(当然还包括其它log实现)做了一层包装,具体的日志输出还是在内部转交给身后的log4j.jar来处理;而log4j虽然做了所有的事情,却甘做绿叶,从不以真身示人。

两者堪称绝配。

 

log4j.properties的配置

下面对log4j.properties文件配置作一点点介绍:

主要由三个重要的组件构成:日志信息的优先级、日志信息的输出目的地、日志信息的输出格式

日志信息的优先级从高到底有:FATAL ERROR WARN INFO DEBUG TRACE ALL,分别用来指这条信息的重要程度;

日志信息的输出目的地指定了日志将打印到控制台还是文件中;

日志信息的输出格式控制了日志信息的显示内容。

 

log4j.rootLogger = debug,A,B

#输出到控制台

log4j.appender.A = org.apache.log4j.ConsoleAppender

log4j.appender.A.target = System.out

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

log4j.appender.A.layout.ConversionPattern =%d %p %t %c - %m %n

#输出到日志文件

log4j.appender.B = org.apache.log4j.DailyRollingFileAppender

log4j.appender.B.File = logs/log.txt文件路径

log4j.appender.B.Append=true

log4j.appender.B.Threshold = DEBUG

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

log4j.appender.B.layout.ConversionPattern =%d %p %t %c - %m %n

 

(注:%d-输出日志事件点的日期或时间(默认格式为ISO8601,也可以自定义:%d{yyy MMM dd HH:mm:ss.SSS}),%p—日志信息优先级,%t-输出产生该日志事件的线程名,%c-输出所属的类目,%m-内容,%n-回车换行,%l-输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。)

 

如何加载log4j.properties配置文件

1.  自动加载以log4j命名的properties文件,路径子src下。

2.  可以使用PropertyConfigurator.configure(“properties文件路径”);

DOMConfigurator.configure(String filename):读取XML形式的配置文件

在web程序中使用log4j注意问题:由于jsp或servlet在执行状态没有当前路径概念,所有使用PropertyConfigurator.configure(String)语句找log4j.propreties文件时要给出相对于当前jsp或servlet的路径转化为一个绝对的文件系统路径。方法是使用servletcontext.getrealpath(“”)语句。例如:

//得到当前jsp路径

String prefix = getServletContext.getRealPath(“\”);

//读取log4j.properties

PropertyConfigurator.configure(prefix+”//WEB-INF//log4j.properties”);

3.  在spring项目中配置Log4j

第一种:在web.xml中配置参数,通过Log4jConfigListener实现监听:

<!--指定log4j配置文件 -->

<context-param>

    <param-name>log4jConfigLocation</param-name>

    <param-value>/WEB-INF/classes/log4j.properties </param-value>

</context-param>

<!--指定以Listener方式监听log4j配置文件-->

<listener>

    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>

</listener>

 

第二种:在web.xml中配置参数,通过Log4jConfigServlet实现:
<!--指定log4j配置文件 -->

<context-param>

    <param-name>log4jConfigLocation</param-name>

    <param-value>/WEB-INF/classes/log4j.properties </param-value>

</context-param>

<servlet>

    <servlet-name>log4j</servlet-name>

    <servlet-class>org.springframework.web.util.Log4jConfigServlet</servlet-class>

    <load-on-startup>1</load-on-startup>

</servlet>

posted on 2017-06-03 17:10  世界之大追梦者  阅读(240)  评论(0编辑  收藏  举报

导航