1. 程式人生 > >log4j.xml配置詳解及log4j日誌使用詳解

log4j.xml配置詳解及log4j日誌使用詳解

log4j 有兩種配置方法,大家熟知的是properties檔案但是最近的專案實施中,每次去使用者那裡裝系統,都要苦惱於log檔案放在不同位置,要改property檔案就要重打jar包,麻煩的緊。而如果採用 xml配置的方法,直接放在WEB-INFO下,要修改路徑,很方便。查了些資料,終於把系統的log4j改成在xml中配置啦。
記一下記一下……嘿嘿
附:log4j的API http://logging.apache.org/log4j/docs/api/index.html
log4i.xml 檔案

  1. <?xmlversion="1.0"encoding="GB2312"?>
  2. <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"
    >
  3. <log4j:configurationxmlns:log4j="http://jakarta.apache.org/log4j/">
  4. <appendername="FILE"
  5. class="org.apache.log4j.RollingFileAppender">
  6. <!-- 設定通道file和輸出方式:org.apache.log4j.RollingFileAppender -->
  7. <paramname="File"value="D:/zhaotj/all.output.log"/><!-- 設定File引數:日誌輸出檔名 -->
  8. <
    paramname="Append"value="true"/><!-- 設定是否在重新啟動服務時,在原有日誌的基礎新增新日誌 -->
  9. <paramname="MaxBackupIndex"value="10"/>
  10. <layoutclass="org.apache.log4j.PatternLayout">
  11. <paramname="ConversionPattern"value="%p (%c:%L)- %m%n"/><!-- 設定輸出檔案專案和格式 -->
  12. </layout>
  13. </appender>
  14. <appender
    name="STDOUT"class="org.apache.log4j.ConsoleAppender">
  15. <!-- 設定監視器輸出方式 -->
  16. <layoutclass="org.apache.log4j.PatternLayout">
  17. <paramname="ConversionPattern"
  18. value="%-4r [%t] %-5p %c %x - %m%n"/>
  19. </layout>
  20. <!--濾鏡設定輸出的級別-->
  21. <filterclass="org.apache.log4j.varia.LevelRangeFilter">
  22. <paramname="levelMin"value="info"/>
  23. <paramname="levelMax"value="info"/>
  24. <paramname="AcceptOnMatch"value="true"/>
  25. </filter>
  26. </appender>
  27. <root><!-- 設定接收所有輸出的通道 -->
  28. <priorityvalue="info"/>
  29. <appender-refref="FILE"/><!-- 與前面的通道id相對應 -->
  30. <appender-refref="STDOUT"/>
  31. </root>
  32. </log4j:configuration>

建好xml檔案後 要寫一個servlet類繼承actionservlet,當工程初始化時自動載入xml配置檔案

  1. package com.asiainfo;   
  2. import javax.servlet.ServletException;   
  3. import org.apache.commons.logging.Log;   
  4. import org.apache.commons.logging.LogFactory;   
  5. import org.apache.log4j.xml.DOMConfigurator;   
  6. import org.apache.struts.action.ActionServlet;   
  7. publicclass ExtendedActionServlet extends ActionServlet {   
  8. private Log log = LogFactory.getLog(this.getClass().getName());   
  9. public ExtendedActionServlet() {}   
  10. publicvoid init() throws ServletException {   
  11.             log.info(   
  12. "Initializing, My MyActionServlet init this System's Const Variable");   
  13.             String prefix = this.getServletConfig().getServletContext().getRealPath(   
  14. "/");//讀取專案的路徑
  15.             String file = this.getServletConfig().getInitParameter("log4j");   
  16. //讀取log4j相對路徑
  17.             String filePath = prefix + file;    
  18.             DOMConfigurator.configure(filePath);//載入.xml檔案       
  19.             log.info("Initializing, end My Init");   
  20. super.init();//應用了struts,此方法不能省,ActionServlet覆蓋了的此方法中有很多重要操作
  21.         }   
  22. }   

我們可以看到 在此類中 用了相對路徑來載入xml的方法,首先通過prefix 讀取了專案的路徑 然後再通過讀取web.xml中的log4j變數,獲得log4j.xml的相對路徑 兩者結合 就是他的絕對路徑拉
最後在web.xml中配置action資訊 就可以實現載入啦
web.xml 

  1. <servlet>
  2. <servlet-name>action</servlet-name>
  3. <servlet-class>
  4.   com.asiainfo.ExtendedActionServlet   
  5. </servlet-class>
  6. <init-param>
  7. <param-name>config</param-name>
  8. <param-value>/WEB-INF/struts-config.xml</param-value>
  9. </init-param>
  10. <!-- tsExtend  -->
  11. <init-param>
  12. <param-name>config/tsextend</param-name><!--裝置檢測子模組-->
  13. <param-value>
  14.    /WEB-INF/tsextend/struts-config.xml   
  15. </param-value>
  16. </init-param>
  17. <init-param>
  18. <param-name>log4j</param-name><!--log4j.xml的路徑-->
  19. <param-value>
  20.    /WEB-INF/log4j.xml   
  21. </param-value>
  22. </init-param>
  23. <init-param>
  24. <param-name>info</param-name>
  25. <param-value>3</param-value>
  26. </init-param>
  27. <init-param>
  28. <param-name>detail</param-name>
  29. <param-value>3</param-value>
  30. </init-param>
  31. <load-on-startup>0</load-on-startup><!--設定當工程初始時便執行-->
  32. </servlet>
  33. <servlet-mapping>
  34. <servlet-name>action</servlet-name>
  35. <url-pattern>*.do</url-pattern>
  36. </servlet-mapping>

/////////////

log4j日誌使用詳解

一、概述
 Log4j是Apache的一個開放原始碼專案,通過使用Log4j,我們可以控制日誌資訊輸送的目的地是控制檯、檔案、GUI元件、甚至是套介面伺服器、NT的事件記錄器、UNIX Syslog守護程序等;我們也可以控制每一條日誌的輸出格式;通過定義每一條日誌資訊的級別,我們能夠更加細緻地控制日誌的生成過程。最令人感興趣的就是,這些可以通過一個配置檔案來靈活地進行配置,而不需要修改應用的程式碼。
  
  此外,通過Log4j其他語言介面,您可以在C、C++、.Net、PL/SQL程式中使用Log4j,其語法和用法與在Java程式中一樣,使得多語言分散式系統得到一個統一一致的日誌元件模組。而且,通過使用各種第三方擴充套件,您可以很方便地將Log4j整合到J2EE、JINI甚至是SNMP應用中。

二,使用前的準備。
 1、下載log4j 地址為:http://jakarta.apache.org/log4j/docs/download.html.
 2、你可能要用到的jar檔案有:  如果需要將日誌傳送到郵箱,則需要javamail API,JAF API (the JavaBeans Activation Framework)
下載地址:  http://java.sun.com/products/javamail/
 http://java.sun.com/beans/glasgow/jaf.html
  如果需要jms的支援,則需要jms API 下載地址為:http://java.sun.com/products/jms/vendors.html
三, Log4j介紹
 Log4j由三個重要的元件構成:日誌資訊的優先順序 priority,日誌資訊的輸出目的地Appender,日誌資訊的輸出格式(佈局)layout。
 1、日誌的優先順序,
 從低到高,依次有:DEBUG,INFO,WARN,ERROR,分別用來指定這條日誌資訊的重要程度;如果定義了了輸入的級別為INFO,則只有等於及高於這個級別的才進行處理,此時將輸入INFO,WARN,ERROR。值得注意的是,級別中還有兩個關鍵字,
 ALL:列印所有的日誌,
 OFF:關閉所有的日誌輸出。
 
 2、輸出端 Appender

 log4j提供了以下幾種常用的輸出目的地:
 org.apache.log4j.ConsoleAppender,將日誌資訊輸出到控制檯
 org.apache.log4j.FileAppender,將日誌資訊輸出到一個檔案
 org.apache.log4j.DailyRollingFileAppender,將日誌資訊輸出到一個,並且每天輸出到一個新的日誌檔案,按照不同的配置可以定義每月一個日誌檔案,或者每週,每天,每小時,每分鐘等輸出一個新的日誌檔案。
 org.apache.log4j.RollingFileAppender,將日誌資訊輸出到一個檔案,通過指定檔案的的尺寸,當檔案大小到達指定尺寸的時候會自動把檔案改名,如名為example.log的檔案會改名為example.log.1,同時產生一個新的example.log檔案。如果新的檔案再次達到指定尺寸,又會自動把檔案改名為example.log.2,同時產生一個example.log檔案。依此類推,直到example.log. MaxBackupIndex,MaxBackupIndex的值可在配置檔案中定義。
 org.apache.log4j.WriterAppender,將日誌資訊以流格式傳送到任意指定的地方。
 org.apache.log4j.jdbc.JDBCAppender,通過JDBC把日誌資訊輸出到資料庫中。
 org.apache.log4j.net.SMTPAppender,將日誌資訊以郵件的方式傳送到指定的郵箱。

 3、輸出格式(佈局)layout
 通過appender可以控制輸出的目的地,而如果要控制輸出的格式,就可通過log4j的layout元件來實現。通過配置檔案定義一個appender的輸出格式,Log4j提供的佈局模式有以下幾種:
 org.apache.log4j.ConsoleAppender,輸出到控制檯
 org.apache.log4j.HTMLLayout,以HTML表格形式佈局
 org.apache.log4j.PatternLayout,可以靈活地指定佈局模式
 org.apache.log4j.SimpleLayout,包含日誌資訊的級別和資訊字串

 值得一提的是org.apache.log4j.PatternLayout 以Pattern方式的佈局,使用Pattern的方式來指定佈局。

pattern 的引數如下:ConversionPattern引數的格式含義
 格式名 含義
 %c 輸出日誌資訊所屬的類的全名
 %d 輸出日誌時間點的日期或時間,預設格式為ISO8601,也可以在其後指定格式,比如:%d{yyy-MM-dd HH:mm:ss },輸出類似:2002-10-18- 22:10:28 ;比如 %d{HH:mm:ss,SSS} 或 %d{dd MMM yyyy HH:mm:ss,SSS}.
格式可以參考 java類 SimpleDateFormat,不過 按照此類的設定會影響速度。你可以選擇更快的方式 %d{ISO8601},%d{ABSOLUTE}, %d{RELATIVE}.或者使用log4j的ISO8601DateFormat, AbsoluteTimeDateFormat,RelativeTimeDateFormat 和 DateTimeDateFormat 方式.
 %f 輸出日誌資訊所屬的類的類名
 %l 輸出日誌事件的發生位置,即輸出日誌資訊的語句處於它所在的類的第幾行
 %m 輸出程式碼中指定的資訊,如log(message)中的message
 %M 輸出日誌資訊中所發生的方法名。
 %n 輸出一個回車換行符,Windows平臺為“/r/n”,Unix平臺為“/n”
 %p 輸出優先順序,即DEBUG,INFO,WARN,ERROR,FATAL。如果是呼叫debug()輸出的,則為DEBUG,依此類推
 %r 輸出自應用啟動到輸出該日誌資訊所耗費的毫秒數
 %t 輸出產生該日誌事件的執行緒名
四、使用
 4.1.1 SimpleLayout 和 FileAppender 方式
以下是以檔案的輸出方式Appender和簡單的佈局方式SimpleLayout的例子:

import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.SimpleLayout;
import org.apache.log4j.FileAppender;
public class simpandfile {
   static Logger logger = Logger.getLogger(simpandfile.class);
   public static void main(String args[]) {
      SimpleLayout layout = new SimpleLayout();

      FileAppender appender = null;
      try {
         appender = new FileAppender(layout,"output1.txt",false);
      } catch(Exception e) {}

      logger.addAppender(appender);
      logger.setLevel((Level) Level.DEBUG);

      logger.debug("Here is some DEBUG");
      logger.info("Here is some INFO");
      logger.warn("Here is some WARN");
      logger.error("Here is some ERROR");
      logger.fatal("Here is some FATAL");
   }
}
       
 首先例項化Logger物件。static Logger logger = Logger.getLogger(simpandfile.class);然後指定輸出的方式和佈局 appender = new FileAppender(layout,"output1.txt",false);logger.addAppender(appender);
最後定義級別:logger.addAppender(appender);這樣完成了log4j日誌類的初始化.接著就可以進行日誌輸出了。這就是log4j日誌類的使用時的一般順序。因以下程式比較簡單,特別的地方將會有註釋,將不再解釋。


 4.1.2. HTMLLayout 和 WriterAppender


import java.io.*;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.HTMLLayout;
import org.apache.log4j.WriterAppender;
public class htmlandwrite {
   static Logger logger = Logger.getLogger(htmlandwrite.class);
   public static void main(String args[]) {
      HTMLLayout layout = new HTMLLayout();

      WriterAppender appender = null;
      try {
         FileOutputStream output = new FileOutputStream("output2.html");
         appender = new WriterAppender(layout,output);
      } catch(Exception e) {}

      logger.addAppender(appender);
      logger.setLevel((Level) Level.DEBUG);

      logger.debug("Here is some DEBUG");
      logger.info("Here is some INFO");
      logger.warn("Here is some WARN");
      logger.error("Here is some ERROR");
      logger.fatal("Here is some FATAL");
   }
}
       
 

4.1.3. PatternLayout and ConsoleAppender

import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;
import org.apache.log4j.ConsoleAppender;
public class consandpatt {
   static Logger logger = Logger.getLogger(consandpatt.class);
   public static void main(String args[]) {

      // Note, %n is newline
      String pattern =  "Milliseconds since program start: %r %n";
             pattern += "Classname of caller: %C %n";
             pattern += "Date in ISO8601 format: %d{ISO8601} %n";
             pattern += "Location of log event: %l %n";
             pattern += "Message: %m %n %n";
     
      PatternLayout layout = new PatternLayout(pattern);
      ConsoleAppender appender = new ConsoleAppender(layout);

      logger.addAppender(appender);
      logger.setLevel((Level) Level.DEBUG);

      logger.debug("Here is some DEBUG");
      logger.info("Here is some INFO");
      logger.warn("Here is some WARN");
      logger.error("Here is some ERROR");
      logger.fatal("Here is some FATAL");
   }
}

4.2 使用配置檔案來定義輸出Appender和佈局格式Layout
 log4j支援兩種方式的配置方式,.properties 二進位制檔案和xml檔案的方式。我們簡單講一下.properties的配置方式後,將主要討論xml檔案的配置方式。
 
 4.2.1  我們將以.properties檔案的格式定義兩種輸出方式,一種是輸出到檔案中,另一種是輸出到資料庫中。
 
 首先定義simple.properties檔案,檔案定義如下:
 
 #定義了兩個輸出端
 log4j.rootLogger = INFO,f,db


 # 定義f輸出到檔案,並且檔案是隨著大小而增加的
 log4j.appender.f = org.apache.log4j.RollingFileAppender 
 log4j.appender.f.File = F://nepalon//classes//test1.log 
 log4j.appender.f.MaxFileSize = 1000KB 
 log4j.appender.f.MaxBackupIndex = 3 
 log4j.appender.f.layout = org.apache.log4j.PatternLayout 
 log4j.appender.f.layout.ConversionPattern = %d{yyyy-MM-dd hh:mm:ss}:%p %t %c - %m%n

 #定義db輸出到資料庫
 log4j.appender.db = org.apache.log4j.jdbc.JDBCAppender
 log4j.appender.db.BufferSize = 40
 log4j.appender.db.Driver = com.microsoft.jdbc.sqlserver.SQLServerDriver
 log4j.appender.db.URL = jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=test
 log4j.appender.db.User = sa
 log4j.appender.db.Password =
 log4j.appender.db.layout = org.apache.log4j.PatternLayout
 log4j.appender.db.layout.ConversionPattern = INSERT INTO log4j (createDate, thread, priority,

category, message) values('%d{ISO8601}', '%t', '%-5p', '%c', '%m')

 然後程式中將引用這配置檔案。定義如下:

 import org.apache.log4j.Logger;
 import org.apache.log4j.xml.DOMConfigurator;

 public class Test {
 
     static Logger logger = Logger.getLogger(Test.class);
     public static void main(String args[]) {
         //以property方式讀到配置檔案。
   PropertyConfigurator.configure ( "simple.properties" ) ;
 
         logger.debug("Here is some DEBUG");
         logger.info("Here is some INFO");
         logger.warn("Here is some WARN");
         logger.error("Here is some ERROR");
         logger.fatal("Here is some FATAL");
     }
 }


 4.2.2 以xml配置

 程式如下:
 import org.apache.log4j.Logger;
 import org.apache.log4j.xml.DOMConfigurator;

 public class Test {
 
     static Logger logger = Logger.getLogger(Test.class);
     public static void main(String args[]) {
         //以XML方式讀到配置檔案。
    DOMConfigurator.configure("xmllog4jconfig.xml");

 
         logger.debug("Here is some DEBUG");
         logger.info("Here is some INFO");
         logger.warn("Here is some WARN");
         logger.error("Here is some ERROR");
         logger.fatal("Here is some FATAL");
     }
 }


 xmllog4jconfig.xml 如下:

 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

 <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
       
   <appender name="appender" class="org.apache.log4j.FileAppender">
      <param name="File" value="Indentify-Log.txt"/>
      <param name="Append" value="false"/>
      <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="%d [%t] %p - %m%n"/>
      </layout>
   </appender>

   <root>
      <priority value ="debug"/>
      <appender-ref ref="appender"/>
   </root>

 </log4j:configuration>


 對比properties方式和xml方式,可以看出他們程式中,除了定義讀取配置檔案的方式不同外,其它的根本就沒有區別了,這也就是log4j的魅力所在了,不需要改變程式,只需要通過改變定義的配置檔案,我們就可以控制日誌的輸出方式,是否輸出,輸出格式。我們可以通過定義不同的xml檔案來控制輸出方式.以下是各種輸出方式與佈局的例子。
 
 4.2.3 比較簡單的一個。
 <?xml version="1.0" encoding="gb2312" ?>
 <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
 <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
 <!--
  配置輸出的日誌目錄為在控制檯。
  格式採用為PatternLoyout,並且樣式為:%d{ISO8601} %r [%c :: %p %m]%n
 -->  
   <appender name="CA" class="org.apache.log4j.ConsoleAppender">   
      <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{ISO8601} %r [%c :: %p %m]%n"/>
      </layout>
   </appender>

   <root>
      <priority value ="debug"/>
     <appender-ref ref="CA"/>
   </root>

 </log4j:configuration>
 
 4.2.4 檔案的輸出 pattern的佈局
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

 <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
       
   <appender name="appender" class="org.apache.log4j.FileAppender">
      <param name="File" value="Indentify-Log.txt"/>
      <param name="Append" value="false"/>
      <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="%d [%t] %p - %m%n"/>
      </layout>
   </appender>

   <root>
      <priority value ="debug"/>
     <appender-ref ref="appender"/>
   </root>

 </log4j:configuration>

 4.2.5 控制檯的輸出 和簡單的佈局
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

 <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
       
   <appender name="ConsoleAppender" class="org.apache.log4j.ConsoleAppender">
      <layout class="org.apache.log4j.SimpleLayout"/>
   </appender>

   <root>
     <priority value ="debug" />
      <appender-ref ref="ConsoleAppender"/>
   </root>

 </log4j:configuration>

 4.2.6 定義三種輸出方式,按照不同的級別,選擇不同的輸出方式.debug,info,級別通過System.out來列印。
 WARN,FATAL通過System.err來輸出。ERROR,FATAL傳送到郵箱。

 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
 <log4j:configuration>
     <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
         <param name="Target" value="System.out" />
         <layout class="org.apache.log4j.PatternLayout">
              <param name="ConversionPattern" value="[%d{ISO8601}] %-5p %c %m %n" />
          </layout>
         <filter class="org.apache.log4j.varia.LevelRangeFilter">
              <param name="LevelMin" value="DEBUG"/>
              <param name="LevelMax" value="INFO"/>
         </filter>
     </appender>
     <appender name="STDERR"  class="org.apache.log4j.ConsoleAppender">
         <param name="Target" value="System.err" />
         <layout class="org.apache.log4j.PatternLayout">
              <param name="ConversionPattern" value="[%d{ISO8601}] %-5p %c %m %n" />
         </layout>
         <filter class="org.apache.log4j.varia.LevelRangeFilter">
              <param name="LevelMin" value="WARN"/>
             <param name="LevelMax" value="FATAL"/>
         </filter>
     </appender>

     <!--                          -->
     <!-- Declare the SMTPAppender -->
     <!--                          -->
     <appender name="EMAIL"  class="org.apache.log4j.net.SMTPAppender">
         <param name="BufferSize" value="512" />
         <param name="SMTPHost" value="mail.suiyuanwu.com" />
         <param name="From" value="[email protected]" />
         <param name="To" value="[email protected]" />
         <param name="Subject" value="[SMTPAppender] Application message" />
         <layout class="org.apache.log4j.PatternLayout">
              <param name="ConversionPattern" value="[%d{ISO8601}]%n%n%-5p%n%n%c%n%n%m%n%n" />
         </layout>
         <filter class="org.apache.log4j.varia.LevelRangeFilter">
              <param name="LevelMin" value="ERROR"/>
              <param name="LevelMax" value="FATAL"/>
         </filter>
     </appender>

     <!--                           -->
     <!-- setup log4j's root logger -->
     <!--                           -->
     <root>
         <level value="all" />
         <appender-ref ref="STDOUT"/>
         <appender-ref ref="STDERR"/>
         <appender-ref ref="EMAIL" />
     </root>
 </log4j:configuration>
   
五、參考資料
 1.http://www.vipan.com/htdocs/log4jhelp.html
         Don't Use System.out.println! Use Log4j - Vipan Singla
 2.http://jakarta.apache.org/log4j/docs/manual.html
  Short introduction to log4j - Ceki Gülcü - March 2002
 3.http://www-128.ibm.com/developerworks/cn/java/jw-log4j/
 log4j提供了對日誌記錄的控制
 4.http://logging.apache.org/log4j/docs/documentation.html
 log4j提供的文件。

相關推薦

log4j.xml配置log4j日誌使用

log4j 有兩種配置方法,大家熟知的是properties檔案但是最近的專案實施中,每次去使用者那裡裝系統,都要苦惱於log檔案放在不同位置,要改property檔案就要重打jar包,麻煩的緊。而如果採用 xml配置的方法,直接放在WEB-INFO下,要修改路徑,很方便。查

java日誌處理元件log4j--log4j.xml配置

<?xml version="1.0" encoding="GBK" ?>     <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">     <log4j:configuration xmlns:log4j="http:/

log4j.xml配置 properties 的太費眼了

  Xml程式碼 <?xml version="1.0" encoding="UTF-8"?>     <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">             <log

Log4J.xml配置

Appender Appender:日誌輸出器,配置日誌的輸出級別、輸出位置等,包括以下幾類: ConsoleAppender: 日誌輸出到控制檯; FileAppender:輸出到檔案; RollingFileAppender:輸出到檔案,檔案達到一定閾

Log4j.xml配置(轉)

Xml程式碼<?xml version="1.0" encoding="UTF-8"?>     <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">             <log4j:confi

systemd配置文件管理方法

systemd一、systemd文件夾配置文件夾: systemd 配置文件存在於以下三個文件夾中: ①/etc/systemd/system 存放系統啟動的默認級別及啟動的unit的軟連接,優先級最高。②/run/systemd/system,系統執行過程中產生的服務腳本,優先級次

java-log4j-xml配置 category、logger、boot 標簽使用

sina 運放 oot margin XML www inf ava app 掌盞撐貝貪下參鴉傺疑http://www.docin.com/sina_6367437814 於鋅中儀蕾柯檀遜渦塗鼓蛔僑http://www.docin.com/sina_6370801430

java-log4j-xml配置category、logger、boot標簽使用

cin com 標簽 oci ddn tar boot xml配置 使用 卑閑洶誌較黴園錳譖釩蒂http://jz.docin.com/ami17633 綴兄怯烈幕怪杖曝嶽脖擋扯http://shufang.docin.com/ami17633 斬莆曰聞藝諫糜粗順迅吹h

Tomcat安裝、配置、優化負載均衡

error png cache 新的 ip地址 ace ppa 不同步 工作目錄 一、常見JavaWeb服務器 1、WebLogic:是BEA公司的產品、WebSphereAS:是IBM公司的產品、JBossAS:紅帽公司的產品,可以自行了解 2、Tomcat服務器:S

Log4j.xml配置講解

<?xml version="1.0" encoding="UTF-8"?> <!-- 標頭檔案 --> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <

log4j.properties,log4j.xml配置檔案的配置示例

log4j.properties日誌檔案的配置一般放在src源目錄下就可以了,下面是具體的配置示例: ### direct log messages to stdout ### log4j.appe

Log4j.xml配置

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://ja

log4j.xml配置檔案中引入變數

Boss最初建議,修改Tomcat的啟動指令碼,在裡面增加變數配置,比如“-Dlog4jOutputPath=c:/log4j”。    我一聽,就不太贊成這種做法了。對於開發與運維都是一撥人,經常需要和其它開發人員交流的情況,修改Tomcat自身的配置比較麻煩。為什麼這麼

Log4j.xml配置(很詳細)

獲取logger Logger.getRootLogger() 獲取根logger Logger.getLogger(String name)獲取子logger Logger.getLogger(Class clazz)或 Logger.getLogger(clazz.getName()) 設定日誌級

在專案的classPath 下配置log4j.xml ,為什麼沒有讀取log4j配置檔案它會自己找到

因為在我們引的jar包  log4j-1.2.16.jar裡面,在啟動時又一個類會自動去找預設的配置檔案, 這些是在LogManage.java裡面的。預設會去classPath下查詢log4j的配

java log4j.xml配置

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j=

搜索系統中所有以.repo結尾的文件並刪除(find命令xargs命令

搜索系統 輸入 最大的 tin fin pro 多個 term 傳遞參數 find / -name *.repo | xargs rm –rf //搜索以.repo結尾的文件並刪除 find命令詳解 精細查找文件或目錄d find [ 查找範圍 ]

支付平臺--清結算流程對賬

                                         

logback.xml配置如何按天輸出日誌檔案

<?xml version="1.0" encoding="UTF-8"?> <configuration> <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender"> <la

關於log4j2的xml配置,以及不同級別日誌輸出到不同日誌檔案

例如,考慮下如下的常見場景:WEB應用,我們不希望把log4j2.xml打包到自己的jar檔案中(這樣修改log4j2的配置就麻煩了),也不希望把log4j2.xml放到WEB-INF/classes下面(不希望使用者隨便操作WEB-INF下的檔案),那我們可以