日志管理Logger

来源:互联网 发布:c语言主要应用有哪些 编辑:程序博客网 时间:2024/06/05 19:26

 

org.apache,log4j,Logger详解

日志记录:1)监视代码中变量的变化情况,周期性的记录到文件中供其他应用统计分析

                     2)跟踪代码运行轨迹,作为日后审计的依据

                     3)集成开发环境中的调试器作用,向文件或控制台打印代码调试信息

 

最普通的做法就是在代码中嵌入许多的打印语句这些打印语句可以输出到控制台或者文件

比较好就是构造一个日志操作类来封装此类操作

 

例子:

package com.coderdream.log4j;

import org.apache.log4j.Logger;

public class HelloLog4j{

//得到记录器

         privatestatic Logger logger = Logger.getLogger(HelloLog4j.class);

        

         publicstaftc void main(String[] args){

                   //PropertyConfigurator.configure(“.\log4j.properties”);

    //插入记录信息(格式化日志信息)

                            //记录debug级别的信息

                            logger.debug(“Thisis debug message.”);

                            //记录info级别的信息

                            logger.info(“Thisis info message.”);

                            //记录error级别的信息

                            logger.error(“Thisis error message.”);

}

}

 

配置文件可知:1.根目录(级别)2.目的地(控制台、文件)3.输出样式

 

两种方式加载log4j.properties:

1.通过资源类对资源文件进行加载,

propertyConfigurator.configure(“.\log4j.properties”);//如上位置

2.由Spring载入log4j.properties配置文件(在web.xml中添加,在listener之前)

<!-- Log4j日志配置,设置log4j配置文件的位置-->

          <context-param>

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

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

          </context-param>

<!--Spring默认刷新Log4j配置文件的间隔,单位为millisecond-->

          <context-param>

                    <param-name>log4jRefreshInterval</param-name>

                    <param-value>60000</param-value>

          </context-param>

<!-- 加载spring容器配置 -->

          <listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

          </listener>

          <listener>

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

          </listener>

 

类图:

Logger-日志写出器,供程序员输出日志信息

Appender-日志目的地,把格式化好的日志信息传输到指定的地方

Layout-日志格式化器,用来把程序员的loggingrequest格式化成字符串

 

Log4j的基本使用方法

Log4j由三个重要组件构成:

日志信息的优先级、日志信息的输出目的地、日志信息的输出样式

高à低  ERROR、WARN、INFO、DEBUG   只打印大于或等于当前优先级的信息

 

1.定义配置文件log4j.properties(WEB-INF/config)

1)  配置根Logger

log4j.rootLogger = level.appenderName, appenderName

level:等级 appenderName:输出目的地,可以是多个

         log4j.rootLogger= info,console,file

2)配置输出目的地appender

log4j.appender.appenderName=org.apache.log4j.ConsoleAppender

org.apache.log4j.ConsoleAppender (控制台),
org.apache.log4j.FileAppender (文件),

org.apache.log4j.DailyRollingFileAppender (每天产生一个日志文件),
org.apache.log4j.RollingFileAppender
(文件大小到达指定尺寸的时候产生一个   新的文件)
org.apache.log4j.WriterAppender (将日志信息以流格式发送到任意指定的地方)

3)  日志信息格式

log4j.appender.appenderName.layout=org.apache.log4j.HTMLLayout

org.apache.log4j.HTMLLayout (以 HTML 表格形式布局),
org.apache.log4j.PatternLayout (可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout (包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout (包含日志产生的时间、线程、类别等等信息)

 

部分配置文件中内容:

### 设置优先级 ###

log4j.rootLogger = info,console,file

 

### 输出到控制台 ###

log4j.appender.console= org.apache.log4j.ConsoleAppender    //控制台

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

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

 

### 输出到文件 ###

                                       Org.apache.log4.jFileAppender      //文件

log4j.appender.file= org.apache.log4j.DailyRollingFileAppender //每天产生一个日志文件

log4j.appender.file.File =/log/Platform/root_

log4j.appender.file.DatePattern=yyyy-MM-dd'.txt'

log4j.appender.file.MaxFileSize =10240KB 

log4j.appender.file.MaxBackupIndex = 2000

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

log4j.appender.file.layout.ConversionPattern=[%d{yy/MM/ddHH:mm:ss}]-%m%n

 

2.在代码中使用Log4j

 

1)  获取记录器

private static Logger logger =Logger.getLogger(HelloLog4j.class);

  2)读取配置文件

          BasicConfigurator.configure () : 自动快速地使用缺省 Log4j 环境。
   PropertyConfigurator.configure ( String configFilename) :读取使用 Java 的特性文件编写的配置文件。
   DOMConfigurator.configure ( String filename ) :读取 XML 形式的配置文件。

   3)插入记录信息(格式化日志信息)

          //记录debug级别的信息

          logger.debug(“This is debug message.”);

          //记录info级别的信息

          logger.info(“This is info message.”);

          //记录error级别的信息

          logger.error(“This is error message.”);

 

 

原创粉丝点击