隨筆 - 18, 文章 - 0, 評論 - 8, 引用 - 0
          數據加載中……

          學習Log4j筆記

          今天花了一天的時間來配置Log4j,沒想到要那么多時間,還問了不少人,帖子也發了不少,不過最終還是搞定了,不過還有些問題,請高手幫我看看,多謝了。

          1.首先是配置簡單java project
          現在來看log4j.propertise
          #級別為DEBUG,二個輸出端,分別為stdout,R
          log4j.logger.helloappLogger=DEBUG, stdout, R

          #控制臺輸出
          log4j.appender.stdout=org.apache.log4j.ConsoleAppender
          log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
          log4j.appender.stdout.layout.ConversionPattern=%5p (%F:%L) - %m%n

          #保存到helloappLoggerlog.txt日志中,大小為100KB
          log4j.appender.R=org.apache.log4j.RollingFileAppender
          log4j.appender.R.File=F:/code/eclipse/workspace/TestLo4j/log/helloappLoggerlog.txt
          log4j.appender.R.MaxFileSize=100KB
          log4j.appender.R.MaxBackupIndex=1
          log4j.appender.R.layout=org.apache.log4j.PatternLayout
          log4j.appender.R.layout.ConversionPattern=%d{yyyy MMM dd HH:mm:ss} %-5p %c - %m%n

          java文件中用到日志
          package com;
          import org.apache.log4j.*;
          public class TestLog4j {
              static Logger logger = Logger.getLogger("helloappLogger");
              public static void main(String[] args) {
          //      PropertyConfigurator.configure("log4j.properties");
          //      如果.properties在當前目錄下可以省略,我放在項目根目錄下,和com包同目錄
                  logger.debug("Debug ...");
                  logger.info("Info ...");
                  logger.warn("Warn ...");
                  logger.error("Error ...");
              }
          }

          2.web project中配置log4j

          還是先來看log4j.perproties

          #級別為DEBUG,三個輸出端,分別為stdout,FILE,R
          log4j.logger.hello=DEBUG, stdout, FILE, R

          #stdout是在控制臺輸出
          log4j.appender.stdout=org.apache.log4j.ConsoleAppender
          log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
          log4j.appender.stdout.layout.ConversionPattern=%5p (%F:%L) - %m%n

          #保存在rolling_log_file.log日志中,appender是RollingFileAppender
          #需要注意的是File=F:/code/...,不要寫成\,這就一點害死我了
          log4j.appender.R=org.apache.log4j.RollingFileAppender
          log4j.appender.R.File=F:/code/eclipse/workspace/TestCvs/WebRoot/WEB-INF/rolling_log_file.log
          log4j.appender.R.MaxFileSize=100KB
          log4j.appender.R.MaxBackupIndex=1
          log4j.appender.R.layout=org.apache.log4j.PatternLayout
          log4j.appender.R.layout.ConversionPattern=%d{yyyy MMM dd HH:mm:ss} %-5p %c - %m%n

          #保存在log_file.log日志中,appender是FileAppender
          log4j.appender.FILE=org.apache.log4j.FileAppender
          log4j.appender.FILE.File=F:/code/eclipse/workspace/TestCvs/WebRoot/WEB-INF/log_file.log
          log4j.appender.FILE.Append=false
          log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
          log4j.appender.FILE.layout.ConversionPattern=%d{yyyy MMM dd HH:mm:ss} %-5p %c - %m%n

          之后要把它加入serlet中,和服務器一起啟動,方便其他程序使用

          public class Log4jServlet extends HttpServlet {
              public void init() throws ServletException {
                  ServletContext sct = getServletContext();
                  System.out.println("[Log4j]: The Root Path: " + sct.getRealPath("/"));
                  System.out.println("[Log4j]: InitServlet init start...");
                  PropertyConfigurator.configure(sct.getRealPath("/")
                        +getServletConfig().getInitParameter("propfile"));
                  System.out.println("[Log4j]: InitServlet init over.");
              }
          }

          <servlet>
              <description>init log4j of servlet</description>
              <display-name>log4j servlet</display-name>
              <servlet-name>Log4jServlet</servlet-name>
              <servlet-class>com.testCvs.Log4jServlet</servlet-class>
              <init-param>
               <param-name>propfile</param-name>
               <param-value>/WEB-INF/log4j.properties</param-value>
              </init-param>
              <load-on-startup>1</load-on-startup>
          </servlet>

          注:log4j.properties放在/WEB-INF下,servlet自動加載這個文件

          至此所有配置應該成功了,不過還是有些問題沒有解決好,問了幾個朋友也沒有得到好的答復,但是現在可以在控制臺和文件中輸出日志,基本功能達到了。還請各位有空給我看看這個錯誤,歡迎指正。

          錯誤如下:
          log4j:WARN No appenders could be found for logger (org.apache.jasper.compiler.JspRuntimeContext).
          log4j:WARN Please initialize the log4j system properly.

          posted on 2005-07-24 22:10 丑男 閱讀(9670) 評論(8)  編輯  收藏 所屬分類: Log4j

          評論

          # re: 學習Log4j筆記  回復  更多評論   

          看了你寫的很不錯.幫我解決了問題.
          報那個錯誤應該問題不大.
          我這里使用那個類加載log4j后竟然沒有報那個錯誤了.
          你可以試試把你寫在web.xml中的那段<servlet>....</servlet>放在struts的actionservlet的前面.
          這樣它就先加載log4j了.
          祝你好運.
          2005-08-05 18:22 | shaokun305

          # re: 學習Log4j筆記  回復  更多評論   

          TO:shaokun305
          多謝你的建議,但我沒有成功,還是會出現那個錯誤
          2005-08-05 22:53 | 丑男

          # re: 學習Log4j筆記  回復  更多評論   

          我也出現這種情況
          log4j:WARN No appenders could be found for logger (org.apache.catalina.session.M
          anagerBase).
          log4j:WARN Please initialize the log4j system properly.
          不知道什么原因,怎么也啟動不了,,
          不過重啟一個就可以了,郁悶!
          2006-09-19 10:56 | tea

          # re: 學習Log4j筆記  回復  更多評論   

          good artical,could we make a firend?Contact me:)MSN:smc@rjgrid.com.cn
          2007-05-22 14:49 | LightStaler

          # re: 學習Log4j筆記  回復  更多評論   

          @LightStaler
          過獎了,老早的寫了,好久沒更新了
          2007-05-23 01:20 | sunjavaer

          # re: 學習Log4j筆記  回復  更多評論   

          我也有類似情況:
          log4j:WARN No appenders could be found for logger (org.jnp.interfaces.NamingContext).
          log4j:WARN Please initialize the log4j system properly.
          我的解決方法是:
          第一行的log4j.logger.x=....改為:log4j.rootLogger=...
          試試看,估計是rootLogger可以截獲所有類的log,單獨的logger的范圍不夠大。
          2007-11-09 22:35 | popkev

          # re: 學習Log4j筆記  回復  更多評論   

          @shaokun305
          還是不可以阿?
          2007-12-30 21:26 | 咯個

          # re: 學習Log4j筆記  回復  更多評論   

          我也按照你的做法做了就是記錄不了日志
          2008-11-10 17:40 | ###

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 偏关县| 巴马| 内江市| 绥德县| 五台县| 内黄县| 罗甸县| 安徽省| 阿勒泰市| 察隅县| 清徐县| 十堰市| 英山县| 康马县| 曲靖市| 深圳市| 富宁县| 双牌县| 潜江市| 会昌县| 丹阳市| 西藏| 通山县| 靖江市| 贺兰县| 武夷山市| 襄汾县| 东明县| 宁夏| 西乡县| 福建省| 黄平县| 讷河市| 镇雄县| 航空| 金湖县| 保康县| 平果县| 弥勒县| 陇川县| 彰化县|