亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 使用log4j進行日志操作.txt

?? 對 網絡編程 時錯誤 有很大幫助的
?? TXT
?? 第 1 頁 / 共 2 頁
字號:
2002 年 6 月 19 日

在應用程序中添加日志記錄總的來說基于三個目的:監視代碼中變量的變化情況,周期性的記錄到文件中供其他應用進行統計分析工作;跟蹤代碼運行時軌跡,作為日后審計的依據;擔當集成開發環境中的調試器的作用,向文件或控制臺打印代碼的調試信息。
概述


1.1. 背景


在應用程序中添加日志記錄總的來說基于三個目的:監視代碼中變量的變化情況,周期性的記錄到文件中供其他應用進行統計分析工作;跟蹤代碼運行時軌跡,作為日后審計的依據;擔當集成開發環境中的調試器的作用,向文件或控制臺打印代碼的調試信息。

最普通的做法就是在代碼中嵌入許多的打印語句,這些打印語句可以輸出到控制臺或文件中,比較好的做法就是構造一個日志操作類來封裝此類操作,而不是讓一系列的打印語句充斥了代碼的主體。

1.2. Log4j簡介


在強調可重用組件開發的今天,除了自己從頭到尾開發一個可重用的日志操作類外,Apache為我們提供了一個強有力的日志操作包-Log4j。

Log4j是Apache的一個開放源代碼項目,通過使用Log4j,我們可以控制日志信息輸送的目的地是控制臺、文件、GUI組件、甚至是套接口服務器、NT的事件記錄器、UNIX Syslog守護進程等;我們也可以控制每一條日志的輸出格式;通過定義每一條日志信息的級別,我們能夠更加細致地控制日志的生成過程。最令人感興趣的就是,這些可以通過一個配置文件來靈活地進行配置,而不需要修改應用的代碼。

此外,通過Log4j其他語言接口,您可以在C、C++、.Net、PL/SQL程序中使用Log4j,其語法和用法與在Java程序中一樣,使得多語言分布式系統得到一個統一一致的日志組件模塊。而且,通過使用各種第三方擴展,您可以很方便地將Log4j集成到J2EE、JINI甚至是SNMP應用中。

本文介紹的Log4j版本是1.2.3。作者試圖通過一個簡單的客戶/服務器Java程序例子對比使用與不使用Log4j 1.2.3的差別,并詳細講解了在實踐中最常使用Log4j的方法和步驟。在強調可重用組件開發的今天,相信Log4j將會給廣大的設計開發人員帶來方便。加入到Log4j的隊伍來吧!



 


 回頁首 
 



一個簡單的例子


我們先來看一個簡單的例子,它是一個用Java實現的客戶/服務器網絡程序。剛開始我們不使用Log4j,而是使用了一系列的打印語句,然后我們將使用Log4j來實現它的日志功能。這樣,大家就可以清楚地比較出前后兩個代碼的差別。

2.1. 不使用Log4j


2.1.1. 客戶程序 


package log4j ;

import java.io.* ;
import java.net.* ;

/**
 *
 * <p> Client Without Log4j </p>
 * <p> Description: a sample with log4j</p>
 * @version 1.0
 */
public class ClientWithoutLog4j {

    /**
     *
     * @param args
     */
    public static void main ( String args [] ) {

        String welcome = null;
        String response = null;
        BufferedReader reader = null;
        PrintWriter writer = null;
        InputStream in = null;
        OutputStream out = null;
        Socket client = null;

        try {
            client = new Socket ( "localhost", 8001 ) ;
            System.out.println ( "info: Client socket: " + client ) ;
            in = client.getInputStream () ;
            out = client.getOutputStream () ;
        } catch ( IOException e ) {
            System.out.println ( "error: IOException : " + e ) ;
            System.exit ( 0 ) ;
        }

        try{
            reader = new BufferedReader( new InputStreamReader ( in ) ) ;
            writer = new PrintWriter ( new OutputStreamWriter ( out ), true ) ;

            welcome = reader.readLine () ;
            System.out.println ( "debug: Server says: '" + welcome + "'" ) ;

            System.out.println ( "debug: HELLO" ) ;
            writer.println ( "HELLO" ) ;
            response = reader.readLine () ;
            System.out.println ( "debug: Server responds: '" + response + "'") ;

            System.out.println ( "debug: HELP" ) ;
            writer.println ( "HELP" ) ;
            response = reader.readLine () ;
            System.out.println ( "debug: Server responds: '" + response + "'" ) ;

            System.out.println ( "debug: QUIT" ) ;
            writer.println ( "QUIT" ) ;
        } catch ( IOException e ) {
            System.out.println ( "warn: IOException in client.in.readln()" ) ;
            System.out.println ( e ) ;
        }
        try{
            Thread.sleep ( 2000 ) ;
        } catch ( Exception ignored ) {}
    }
}
 


2.1.2. 服務器程序 


package log4j ;

import java.util.* ;
import java.io.* ;
import java.net.* ;

/**
 *
 * <p> Server Without Log4j </p>
 * <p> Description: a sample with log4j</p>
 * @version 1.0
 */
public class ServerWithoutLog4j {

    final static int SERVER_PORT = 8001 ; // this server's port

    /**
     *
     * @param args
     */
    public static void main ( String args [] ) {
        String clientRequest = null;
        BufferedReader reader = null;
        PrintWriter writer = null;
        ServerSocket server = null;
        Socket socket = null;
        InputStream in = null;
        OutputStream out = null;

        try {
            server = new ServerSocket ( SERVER_PORT ) ;
            System.out.println ( "info: ServerSocket before accept: " + server ) ;
            System.out.println ( "info: Java server without log4j, on-line!" ) ;

            // wait for client's connection
            socket = server.accept () ;
            System.out.println ( "info: ServerSocket after accept: " + server )  ;

            in = socket.getInputStream () ;
            out = socket.getOutputStream () ;

        } catch ( IOException e ) {
            System.out.println( "error: Server constructor IOException: " + e ) ;
            System.exit ( 0 ) ;
        }
        reader = new BufferedReader ( new InputStreamReader ( in ) ) ;
        writer = new PrintWriter ( new OutputStreamWriter ( out ) , true ) ;

        // send welcome string to client
        writer.println ( "Java server without log4j, " + new Date () ) ;

        while ( true ) {
            try {
                // read from client
                clientRequest = reader.readLine () ;
                System.out.println ( "debug: Client says: " + clientRequest ) ;
                if ( clientRequest.startsWith ( "HELP" ) ) {
                    System.out.println ( "debug: OK!" ) ;
                    writer.println ( "Vocabulary: HELP QUIT" ) ;
                }
                else {
                    if ( clientRequest.startsWith ( "QUIT" ) ) {
                        System.out.println ( "debug: OK!" ) ;
                        System.exit ( 0 ) ;
                    }
                    else{
                        System.out.println ( "warn: Command '" + 
						clientRequest + "' not understood." ) ;
                        writer.println ( "Command '" + clientRequest 
						+ "' not understood." ) ;
                    }
                }
            } catch ( IOException e ) {
                System.out.println ( "error: IOException in Server " + e ) ;
                System.exit ( 0 ) ;
            }
        }
    }
}
 


2.2. 遷移到Log4j


2.2.1. 客戶程序 


package log4j ;

import java.io.* ;
import java.net.* ;

// add for log4j: import some package
import org.apache.log4j.PropertyConfigurator ;
import org.apache.log4j.Logger ;
import org.apache.log4j.Level ;

/**
 *
 * <p> Client With Log4j </p>
 * <p> Description: a sample with log4j</p>
 * @version 1.0
 */
public class ClientWithLog4j {

    /*
    add for log4j: class Logger is the central class in the log4j package.
    we can do most logging operations by Logger except configuration.
    getLogger(...): retrieve a logger by name, if not then create for it.
    */
    static Logger logger = Logger.getLogger 
	( ClientWithLog4j.class.getName () ) ;

    /**
     *
     * @param args : configuration file name
     */
    public static void main ( String args [] ) {

        String welcome = null ;
        String response = null ;
        BufferedReader reader = null ;
        PrintWriter writer = null ;
        InputStream in = null ;
        OutputStream out = null ;
        Socket client = null ;

        /*
        add for log4j: class BasicConfigurator can quickly configure the package.
        print the information to console.
        */
        PropertyConfigurator.configure ( "ClientWithLog4j.properties" ) ;

        // add for log4j: set the level
//        logger.setLevel ( ( Level ) Level.DEBUG ) ;

        try{
            client = new Socket( "localhost" , 8001 ) ;

            // add for log4j: log a message with the info level
            logger.info ( "Client socket: " + client ) ;

            in = client.getInputStream () ;
            out = client.getOutputStream () ;
        } catch ( IOException e ) {

            // add for log4j: log a message with the error level
            logger.error ( "IOException : " + e ) ;

            System.exit ( 0 ) ;
        }

        try{
            reader = new BufferedReader ( new InputStreamReader ( in ) ) ;
            writer = new PrintWriter ( new OutputStreamWriter ( out ), true ) ;

            welcome = reader.readLine () ;

            // add for log4j: log a message with the debug level
            logger.debug ( "Server says: '" + welcome + "'" ) ;

            // add for log4j: log a message with the debug level
            logger.debug ( "HELLO" ) ;

            writer.println ( "HELLO" ) ;
            response = reader.readLine () ;

            // add for log4j: log a message with the debug level
            logger.debug ( "Server responds: '" + response + "'" ) ;

            // add for log4j: log a message with the debug level

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久综合精品| 欧美国产乱子伦| 国产精品911| 午夜视频在线观看一区| 中文字幕av一区二区三区| 欧美久久一二区| 成人av网址在线观看| 美女视频黄 久久| 亚洲一区二区三区视频在线播放| 精品乱人伦一区二区三区| 欧美亚一区二区| 99riav久久精品riav| 国产一区二区三区香蕉| 日韩电影一二三区| 亚洲欧美国产三级| 国产视频一区在线播放| 欧美一区二区视频在线观看2022| 99热精品国产| 国产v日产∨综合v精品视频| 日韩一区精品视频| 一卡二卡欧美日韩| 亚洲特级片在线| 亚洲国产精品二十页| 久久综合狠狠综合久久激情| 91精品国模一区二区三区| 欧美日韩一区二区在线观看视频 | 精品国产一区久久| 欧美高清性hdvideosex| 在线一区二区三区| 91亚洲男人天堂| av在线免费不卡| 国产jizzjizz一区二区| 国产精品综合二区| 国产一区二区伦理| 国产一区二区免费看| 韩国三级中文字幕hd久久精品| 免费观看一级特黄欧美大片| 免费在线观看一区| 免费一区二区视频| 免费观看在线综合色| 美女脱光内衣内裤视频久久网站| 青青草97国产精品免费观看 | 日韩欧美在线观看一区二区三区| 欧美日韩专区在线| 91精品婷婷国产综合久久竹菊| 欧美日韩黄视频| 日韩一区二区电影| 欧美成人三级电影在线| 精品少妇一区二区三区免费观看| 精品国产免费视频| 久久精品一区四区| 国产精品久久久久国产精品日日 | 欧美国产精品一区| 亚洲国产精品黑人久久久 | 日韩成人一级大片| 精品综合免费视频观看| 国产精品亚洲一区二区三区在线| 国产激情一区二区三区四区| 风间由美一区二区av101| 成人激情综合网站| 色综合av在线| 91精品国产一区二区三区| 精品国产自在久精品国产| 日本一区免费视频| 亚洲精品日日夜夜| 日本网站在线观看一区二区三区| 激情综合五月婷婷| 成人激情小说乱人伦| 在线观看视频一区二区| 欧美一区二区三区在线观看视频| 精品国产乱码久久| 1区2区3区精品视频| 亚洲午夜私人影院| 精品亚洲成av人在线观看| 福利91精品一区二区三区| 日本道在线观看一区二区| 欧美一区二区三区免费视频| 国产日韩欧美一区二区三区乱码 | 日韩av电影一区| 国产精品一区二区男女羞羞无遮挡| 成人影视亚洲图片在线| 欧美色大人视频| 久久久五月婷婷| 一区二区成人在线观看| 国产一区日韩二区欧美三区| 色综合天天综合| 欧美变态tickling挠脚心| 亚洲视频香蕉人妖| 久久99国产精品免费网站| 色综合中文字幕| 精品福利一区二区三区免费视频| 亚洲品质自拍视频网站| 精品一区二区三区久久久| 色婷婷精品大视频在线蜜桃视频| 日韩视频免费观看高清完整版| 国产精品国产三级国产三级人妇| 日本伊人色综合网| 色综合久久久久久久久| 久久综合久久综合久久综合| 亚洲福利视频三区| 97se亚洲国产综合自在线| 欧美电视剧在线观看完整版| 一区二区在线看| 国产酒店精品激情| 91精品福利在线一区二区三区| 中文字幕五月欧美| 国产精品123区| 日韩欧美在线123| 婷婷国产v国产偷v亚洲高清| 91麻豆文化传媒在线观看| 亚洲国产精品av| 国模套图日韩精品一区二区| 欧美精品一卡两卡| 亚洲国产综合在线| 91丨porny丨最新| 国产精品网站在线观看| 国产在线观看免费一区| 欧美一级淫片007| 日韩电影在线观看网站| 欧美日韩久久不卡| 洋洋成人永久网站入口| aaa欧美色吧激情视频| 欧美国产精品劲爆| 国产精品白丝av| 久久精品视频在线免费观看| 久久99精品国产.久久久久久| 91精品国产综合久久精品图片 | 欧美成人官网二区| 三级亚洲高清视频| 欧美精品粉嫩高潮一区二区| 亚洲成人自拍一区| 欧美日韩高清在线| 亚洲第一福利一区| 欧美日韩精品是欧美日韩精品| 亚洲嫩草精品久久| 色综合一区二区| 一区二区三区四区不卡在线| 色婷婷综合视频在线观看| 亚洲精品va在线观看| 欧美在线视频你懂得| 亚洲一本大道在线| 91精品国产综合久久国产大片| 秋霞国产午夜精品免费视频| 日韩精品在线网站| 国产美女精品一区二区三区| 日本一区二区三级电影在线观看| 国产精品一区二区无线| 国产精品天美传媒| 91同城在线观看| 亚洲一区二区三区视频在线| 7799精品视频| 精品亚洲成a人| 国产精品久久久久一区二区三区共| voyeur盗摄精品| 一区二区三区久久| 欧美高清视频在线高清观看mv色露露十八| 日韩精品视频网站| 精品国产欧美一区二区| 成人黄色在线看| 亚洲一二三级电影| 精品免费日韩av| 99免费精品在线观看| 丝袜诱惑亚洲看片| 精品99一区二区三区| 成人h版在线观看| 亚洲福利国产精品| 久久精品欧美日韩精品| 99久免费精品视频在线观看| 亚洲成人av免费| 久久久久99精品一区| 91福利在线观看| 久国产精品韩国三级视频| 国产精品美女www爽爽爽| 在线观看日韩av先锋影音电影院| 免费看日韩精品| 国产精品久久久久四虎| 欧美精品久久一区二区三区| 国产一区在线精品| 亚洲一区二区精品视频| 精品区一区二区| 91成人免费在线| 精品亚洲成a人在线观看| 一区二区三区日韩欧美| 精品黑人一区二区三区久久 | 欧美群妇大交群中文字幕| 国产精品羞羞答答xxdd| 亚洲成人免费视| 中文成人综合网| 欧美一二三区在线观看| 91香蕉视频黄| 国产传媒欧美日韩成人| 亚洲444eee在线观看| 国产精品日韩精品欧美在线| 欧美一区二区三区啪啪| 色综合天天性综合| 国产成人欧美日韩在线电影| 午夜精品国产更新| 日韩毛片视频在线看| 精品处破学生在线二十三| 欧美色大人视频|