??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国产小视频,色悠悠久久久久,中文在线资源http://www.aygfsteel.com/naruke/category/22873.htmlzh-cnThu, 31 May 2007 21:59:33 GMTThu, 31 May 2007 21:59:33 GMT60Log4j学习http://www.aygfsteel.com/naruke/articles/120606.html扭曲的铅W?/dc:creator>扭曲的铅W?/author>Tue, 29 May 2007 01:39:00 GMThttp://www.aygfsteel.com/naruke/articles/120606.htmlhttp://www.aygfsteel.com/naruke/comments/120606.htmlhttp://www.aygfsteel.com/naruke/articles/120606.html#Feedback0http://www.aygfsteel.com/naruke/comments/commentRss/120606.htmlhttp://www.aygfsteel.com/naruke/services/trackbacks/120606.html 

一?span lang=EN-US>Log4j概念Q?span lang=EN-US>

Log4j中有三个主要的组Ӟ它们分别?span lang=EN-US>Logger?span lang=EN-US>Appender?span lang=EN-US>LayoutQ?span lang=EN-US>Log4j 允许开发h员定义多?span lang=EN-US>LoggerQ每?span lang=EN-US>Logger拥有自己的名字,Logger之间通过名字来表明隶属关pR有一?span lang=EN-US>LoggerUCؓRootQ它永远 存在Q且不能通过名字索或引用Q可以通过Logger.getRootLogger()Ҏ获得Q其?span lang=EN-US>Logger通过 Logger.getLogger(String name)Ҏ?span lang=EN-US>
   Appender则是用来指明所有的log信息存放C么地方,Log4j中支持多U?span lang=EN-US>appenderQ如 console?span lang=EN-US>files?span lang=EN-US>GUI components?span lang=EN-US>NT Event Loggers{,一?span lang=EN-US>Logger可以拥有多个AppenderQ也是你既可以?span lang=EN-US>Log信息输出到屏q,同时存储C个文件中?span lang=EN-US>
   Layout的作用是控制Log信息的输出方式,也就是格式化输出的信息?span lang=EN-US>
   Log4j中将要输出的Log信息定义?span lang=EN-US>5U别,依次?span lang=EN-US>DEBUG?span lang=EN-US>INFO?span lang=EN-US>WARN?span lang=EN-US>ERROR?span lang=EN-US>FATALQ当输出Ӟ只有U别高过配置中规定的U别的信息才能真正的输出Q这样就很方便的来配|不同情况下要输出的内容Q而不需要更改代?span lang=EN-US>

 

二?span lang=EN-US>Log4j的配|文?span lang=EN-US>

 

Log4j提供?span lang=EN-US>appender有以下几U:
  org.apache.log4j.ConsoleAppender
Q控制台Q?span lang=EN-US>
  org.apache.log4j.FileAppenderQ文Ӟ
  org.apache.log4j.DailyRollingFileAppender
Q每天生一个日志文Ӟ
  org.apache.log4j.RollingFileAppender
Q文件大到达指定尺寸的时候生新文gQ?span lang=EN-US>
  org.apache.log4j.WriterAppenderQ将日志信息以流格式发送到L指定的地方)
配置日志信息的格式(布局Q,其语法ؓQ?span lang=EN-US>
  log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
  log4j.appender.appenderName.layout.option1 = value1
  ....
  log4j.appender.appenderName.layout.option = valueN
Log4j提供?span lang=EN-US>layout有以下几U:
  org.apache.log4j.HTMLLayout
Q以HTML表格形式布局Q,
  org.apache.log4j.PatternLayout
Q可以灵zd指定布局模式Q,
  org.apache.log4j.SimpleLayout
Q包含日志信息的U别和信息字W串Q,
  org.apache.log4j.TTCCLayout
Q包含日志生的旉、线E、类别等{信息)

 

配置文g有两U格式分别是xml?span lang=EN-US>propertyQ我只学习了property格式

 

#root 格式log4j.rootLogger=[level,appenderName,appenderName....]Q可以有多个appender

log4j.rootLogger=INFO,A1,R

#A1输出方式为控制台Q?span lang=PT-BR>layout格式可以是自订的

log4j.appender.A1=org.apache.log4j.ConsoleAppender

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

log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n

 

#R1输出方式为文件大到?span lang=PT-BR>500KB的时候生新文gQ?span lang=PT-BR>layout格式可以是自订的

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

log4j.appender.R.File=petstorlog4j.txt

log4j.appender.R.MaxFileSize=500KB

log4j.appender.R.MaxBackupIndex=1

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

log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n

 

三、在WEB应用pȝ中注?span lang=EN-US>Log4jQ如果系l本w加?span lang=EN-US>spring׃需要这一步骤Q?span lang=EN-US>

创徏一个初始化log4j?span lang=EN-US>servlet如下创徏一个名?#8220;log4jInit”Qƈ?span lang=EN-US>initQ)Ҏ里添?span lang=EN-US>

 

      public void init() {

            String prefix =  getServletContext().getRealPath("/");

        //取得web.xml?span lang=EN-US>sevelt传递的参数props的|该参数指?span lang=EN-US>log4j.properties?span lang=EN-US>//件的路径

            String file = getInitParameter("props");

            // if the log4j-init-file is not set, then no point in trying

            System.out.println("................log4j start");

            if(file != null) {

              PropertyConfigurator.configure(prefix+file);

            }

          }

 

?span lang=EN-US>WEB.xml里的配置如下

  <servlet>

    <servlet-name>log4jInit</servlet-name>

    <servlet-class>com.petstor.servlet.log4jInit</servlet-class>

    <init-param>

    <param-name>props</param-name>

    <param-value>log4j.properties</param-value>

    </init-param>

<!?/span>在服务器启动是,加蝲?span lang=EN-US>servletQƈ且只加蝲一?span lang=EN-US>-->

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

  </servlet>

 

四、在E序中?span lang=EN-US>Log4j

要在自己的类中?span lang=EN-US>Log4jQ首先声明一个静态变?span lang=EN-US>Logger logger=Logger.getLog("classname")Q在使用之前Q用PropertyConfigurator.configure ("配置文g")配置一下,现在可以用了Q用法如下:logger.debug("debug message")或?span lang=EN-US>logger.info("info message")Q看下面一个小例子Q?span lang=EN-US>

    import com.foo.Bar;
    import org.apache.log4j.Logger;
    import org.apache.log4j.PropertyConfigurator;
    public class MyApp {
    static Logger logger = Logger.getLogger(MyApp.class.getName());
    public static void main(String[] args) {
      // BasicConfigurator replaced with PropertyConfigurator.
      PropertyConfigurator.configure(args[0]);
      logger.info("Entering application.");
      Bar bar = new Bar();
      bar.doIt();
      logger.info("Exiting application.");
       }
    }

 



]]>
վ֩ģ壺 | | | ˮ| | | Ž| ¡| | | ߮| | н| | ¡| | | | ƺ| ̫| | ľ| ̶| | ¡Ң| ɽ| ;| ޳| Ļ| | | | | | | | | | ׿| | |