<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    junctioner

    再學習log4j筆記

    log4j,字面意思就是針對j(Java)的日志。
    log4j,可以記錄顯示Java程序運行的每一步的數(shù)據(jù),相當于System.out.print,不過,它是以一個日志文件顯示所標識的運行信息,不用在java運行顯示臺上看輸出信息,比較方面。
    log4j,記錄的數(shù)據(jù),可以作為判斷程序運行狀態(tài)的重要依據(jù),更多的應是查找程序運行BUG的重要依據(jù),特別是程序已發(fā)布,不能做單步調(diào)試的情況下,它的優(yōu)越性就突顯出來了。
    引用一個對log4j的功能比較專業(yè)的描述:

    1、監(jiān)視代碼中變量的變化情況,周期性的記錄到文件中供其他應用進行統(tǒng)計分析工作;
    2、跟蹤代碼運行時軌跡,作為日后審計的依據(jù);
    3、擔當集成開發(fā)環(huán)境中的調(diào)試器的作用,向文件或控制臺打印代碼的調(diào)試信息。

    以前偶爾的用過幾次,但一次沒形成習慣和一套良好的應用機制,自咎主要原因是對log4j掌握的還是不夠,亟待提升。

    今天就花時間找些資源研究研究。

    在網(wǎng)上搜到一些文章,首先看的是IBM中國網(wǎng)站上的一篇技術(shù)文章(http://www-128.ibm.com/developerworks/cn/java/l-log4j/index.html)講得比較基礎,也很詳細,對log4j的使用講得全面而貼切,甚利于初次學習,發(fā)表日期是2002/6/19(有點早)。

    1、去網(wǎng)站(http://logging.apache.org/log4j/docs/download.html)下載log4j的jar包,直接下載log4j-1.2.13版鏈接:http://mirror.vmmatrix.net/apache/logging/log4j/1.2.13/logging-log4j-1.2.13.zip;
    2、解開log4j.jar文件放到web應用程序的WEB-INF/lib下面;
    3、編寫文件名為log4j.properties 配置文件到java源文件的根目錄中;
    4、在自己的程序中構(gòu)建日志記錄器;
    5、利用記錄器標識要輸入的信息。

    第二步如果是在java的一般應用程序中應用log4j,則在環(huán)境變量CLASSPATH中添加一個指向log4j.jar的值。
    第三步把命名為log4j.properties的log4j配置文件放在java源文件目錄中是一個簡潔的辦法,可以在程序中自定義的指定log4j的配置文件,配置文件名稱和存放路徑都可自定義。

    當獲得了日志記錄器之后,第二步將配置Log4j環(huán)境,其語法為: 
    BasicConfigurator.configure (): 自動快速地使用缺省Log4j環(huán)境。 
    PropertyConfigurator.configure ( String configFilename) :讀取使用Java的特性文件編寫的配置文件。 
    DOMConfigurator.configure ( String filename ) :讀取XML形式的配置文件。

    Log4j支持兩種配置文件格式,一種是XML格式的文件,一種是Java特性文件(鍵=值)。下面引用的是使用Java特性文件做為配置文件的方法(不用XML解析器):

    配置根Logger,其語法為: 
    log4j.rootLogger = [ level ] , appenderName, appenderName, …

    其中,level 是日志記錄的優(yōu)先級,分為OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定義的級別。Log4j建議只使用四個級別,優(yōu)先級從高到低分別是ERROR、WARN、INFO、DEBUG。通過在這里定義的級別,您可以控制到應用程序中相應級別的日志信息的開關。比如在這里定義了INFO級別,則應用程序中所有DEBUG級別的日志信息將不被打印出來。 
    appenderName就是指定日志信息輸出到哪個地方。您可以同時指定多個輸出目的地。 
    配置日志信息輸出目的地Appender,其語法為 
    log4j.appender.appenderName = fully.qualified.name.of.appender.class
    log4j.appender.appenderName.option1 = value1

    log4j.appender.appenderName.option = valueN其中,Log4j提供的appender有以下幾種: 
    org.apache.log4j.ConsoleAppender(控制臺), 
    org.apache.log4j.FileAppender(文件), 
    org.apache.log4j.DailyRollingFileAppender(每天產(chǎn)生一個日志文件),org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸的時候產(chǎn)生一個新的文件), 
    org.apache.log4j.WriterAppender(將日志信息以流格式發(fā)送到任意指定的地方) 
    配置日志信息的格式(布局),其語法為: 
    log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
    log4j.appender.appenderName.layout.option1 = value1

    log4j.appender.appenderName.layout.option = valueN其中,Log4j提供的layout有以下幾種: 
    org.apache.log4j.HTMLLayout(以HTML表格形式布局), 
    org.apache.log4j.PatternLayout(可以靈活地指定布局模式), 
    org.apache.log4j.SimpleLayout(包含日志信息的級別和信息字符串), 
    org.apache.log4j.TTCCLayout(包含日志產(chǎn)生的時間、線程、類別等等信息) 

    下面是一個log4j配置文件的例子(內(nèi)容不含前面的行號):
     1log4j.rootLogger=INFO, A1 , R
     2
     3log4j.appender.A1=org.apache.log4j.ConsoleAppender 
     4log4j.appender.A1.layout=org.apache.log4j.PatternLayout 
     5log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n 
     6
     7log4j.appender.R=org.apache.log4j.RollingFileAppender
     8log4j.appender.R.File=$TOMCAT_HOME/logs/log4j.log
     9##將$TOMCAT_HOME換成tomcat的安裝目錄,也可以指定一個存在的任意目錄
    10log4j.appender.R.MaxFileSize=100KB
    11log4j.appender.R.MaxBackupIndex=1
    12log4j.appender.R.layout=org.apache.log4j.PatternLayout
    13log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n


    第1行的值INFO,表示輸出INFO級以上的日志,如果設成OFF則表示不輸出,A1和R是自定義的兩種輸出方式(可以自定義n種輸出方式),其詳細內(nèi)容在后面有定義;
    第3行定義A1是輸出到控制臺;
    第7行定義R是輸出到文件,并且控制文件在指定大小,超過指定大小自動按指定形式創(chuàng)建一個新名稱的日志文件;

    一般是以指定格式的文本輸出日志,輸出比較快捷,也可以定義HTML格式的日志輸出,閱讀方便,但稍微有點慢。

    現(xiàn)在,可以象使用System.out.println一樣標識程序輸出信息了看一個在程序中應用log4j的簡單例子。
    import org.apache.log4j.Level;
    import org.apache.log4j.Logger;
    import org.apache.log4j.SimpleLayout;
    import org.apache.log4j.FileAppender;
    public class simpandfile {
        //獲取log4j日志記錄器
       
    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);
           //設置日志輸出等級為DEBUG
          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");
       }

    }

    如果定義了log4j的輸出配置文件,在程序中獲取日志記錄器后就可以直接標識日志輸出信息。

    [***] 在判斷DEBUG/INFO級別的信息是否要加入日志文件前,記錄器提供isDebugEnabled()/isInfoEnabled()方法判斷當前級別是否激活,這樣處理減少日志處理信息時再判斷當前級別是否激活消耗的資源,提高運行性能。

    補加:

    剛發(fā)現(xiàn)log4e(http://log4e.jayefem.de/index.php/Download)這個eclipse的插件,它實現(xiàn)的功能是鼠標點擊幾下,就可以自動生產(chǎn)log標識,免去手敲的體力。
    至于怎么用,就很簡單了,跟它的插件一樣安裝,裝完后,在eclipse的編輯區(qū)右鍵菜單中會多一個log4e項,所有操作都在這里了。

    posted on 2006-02-13 10:52 junctioner 閱讀(3806) 評論(0)  編輯  收藏 所屬分類: 技術(shù)之路

    <2006年2月>
    2930311234
    567891011
    12131415161718
    19202122232425
    2627281234
    567891011

    導航

    統(tǒng)計

    常用鏈接

    留言簿(8)

    隨筆分類

    隨筆檔案

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 一级毛片全部免费播放| 久久香蕉国产线看免费| 色播在线永久免费视频| 国产亚洲中文日本不卡二区| 日本阿v免费费视频完整版| 亚洲区视频在线观看| 性xxxxx免费视频播放| 亚洲av永久综合在线观看尤物| 国产精品成人免费福利| 色偷偷女男人的天堂亚洲网| 国产免费av片在线看| 亚洲国产精品无码久久九九大片 | 亚洲国产AV一区二区三区四区| 中文字幕无码免费久久99| 亚洲高清一区二区三区| 好吊妞在线新免费视频| 免费人成视频在线播放| 亚洲精品无码永久中文字幕| 182tv免费观看在线视频| 亚洲成年网站在线观看| 亚洲国产成人影院播放| 在线观看人成视频免费无遮挡| 久久综合亚洲色HEZYO社区| 国产免费丝袜调教视频| 国产午夜亚洲精品不卡免下载| 国产亚洲日韩在线三区| 2021在线观看视频精品免费| 亚洲成av人片天堂网无码】| 亚洲无码视频在线| 三年片在线观看免费大全电影 | 亚洲欧洲日产国码久在线| 国产精品免费一级在线观看| a级毛片无码免费真人久久| 亚洲日本国产精华液| 四虎影视永久免费观看| 在线毛片片免费观看| 亚洲欧美日韩综合久久久| 国产亚洲精品看片在线观看| h视频在线观看免费网站| 免费国产在线精品一区| 亚洲精品在线播放|