posts - 6, comments - 8, trackbacks - 0, articles - 6
            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          2006年11月29日

          ??????? Abstract?class?抽象類:抽象類是不允許實(shí)例化的類,因此一般它需要被進(jìn)行擴(kuò)展繼承。???

            Abstract?method?抽象方法:抽象方法即不包含任何功能代碼的方法。???

            Access?modifier?訪問(wèn)控制修飾符:訪問(wèn)控制修飾符用來(lái)修飾Java中類、以及類的方法和變量的訪問(wèn)控制屬性。???

            Anonymous?class?匿名類:當(dāng)你需要?jiǎng)?chuàng)建和使用一個(gè)類,而又不需要給出它的名字或者再次使用的使用,就可以利用匿名類。???

            Anonymous?inner?classes?匿名內(nèi)部類:匿名內(nèi)部類是沒(méi)有類名的局部?jī)?nèi)部類。???

            API?應(yīng)用程序接口:提供特定功能的一組相關(guān)的類和方法的集合。???

            Array?數(shù)組:存儲(chǔ)一個(gè)或者多個(gè)相同數(shù)據(jù)類型的數(shù)據(jù)結(jié)構(gòu),使用下標(biāo)來(lái)訪問(wèn)。在Java中作為對(duì)象處理。???

            Automatic?variables?自動(dòng)變量:也稱為方法局部變量method?local?variables,即聲明在方法體中的變量。???


            Base?class?基類:即被擴(kuò)展繼承的類。???

            Blocked?state?阻塞狀態(tài):當(dāng)一個(gè)線程等待資源的時(shí)候即處于阻塞狀態(tài)。阻塞狀態(tài)不使用處理器資源???

            Call?stack?調(diào)用堆棧:調(diào)用堆棧是一個(gè)方法列表,按調(diào)用順序保存所有在運(yùn)行期被調(diào)用的方法。???

            Casting?類型轉(zhuǎn)換?:即一個(gè)類型到另一個(gè)類型的轉(zhuǎn)換,可以是基本數(shù)據(jù)類型的轉(zhuǎn)換,也可以是對(duì)象類型的轉(zhuǎn)換。???

            char?字符:容納單字符的一種基本數(shù)據(jù)類型。???

            Child?class?子類:見(jiàn)繼承類Derived?class???

            Class?類:面向?qū)ο笾械淖罨?、最重要的定義類型。???

            Class?members?類成員:定義在類一級(jí)的變量,包括實(shí)例變量和靜態(tài)變量。???

            Class?methods?類方法:類方法通常是指的靜態(tài)方法,即不需要實(shí)例化類就可以直接訪問(wèn)使用的方法。???

            Class?variable?類變量:見(jiàn)靜態(tài)變量Static?variable???

            Collection?容器類:容器類可以看作是一種可以儲(chǔ)存其他對(duì)象的對(duì)象,常見(jiàn)的容器類有Hashtables和Vectors。???

            Collection?interface?容器類接口:容器類接口定義了一個(gè)對(duì)所有容器類的公共接口。???

            Collections?framework?容器類構(gòu)架:接口、實(shí)現(xiàn)和算法三個(gè)元素構(gòu)成了容器類的架構(gòu)。???

            Constructor?構(gòu)造函數(shù):在對(duì)象創(chuàng)建或者實(shí)例化時(shí)候被調(diào)用的方法。通常使用該方法來(lái)初始化數(shù)據(jù)成員和所需資源。???

            Containers容器:容器是一種特殊的組件,它可以容納其他組件。???

            Declaration?聲明:聲明即是在源文件中描述類、接口、方法、包或者變量的語(yǔ)法。???

            Derived?class?繼承類:繼承類是擴(kuò)展繼承某個(gè)類的類。???

            Encapsulation?封裝性:封裝性體現(xiàn)了面向?qū)ο蟪绦蛟O(shè)計(jì)的一個(gè)特性,將方法和數(shù)據(jù)組織在一起,隱藏其具體實(shí)現(xiàn)而對(duì)外體現(xiàn)出公共的接口。???

            Event?classes?事件類:所有的事件類都定義在java.awt.event包中。???

            Event?sources?事件源:產(chǎn)生事件的組件或?qū)ο蠓Q為事件源。事件源產(chǎn)生事件并把它傳遞給事件監(jiān)聽(tīng)器event?listener*。???

            Exception?異常:異常在Java中有兩方面的意思。首先,異常是一種對(duì)象類型。其次,異常還指的是應(yīng)用中發(fā)生的一種非標(biāo)準(zhǔn)流程情況,即異常狀態(tài)。???

            Extensibility擴(kuò)展性:擴(kuò)展性指的是面向?qū)ο蟪绦蛑?,不需要重寫代碼和重新設(shè)計(jì),能容易的增強(qiáng)源設(shè)計(jì)的功能。???

            Finalizer?收尾:每個(gè)類都有一個(gè)特殊的方法finalizer,它不能被直接調(diào)用,而被JVM在適當(dāng)?shù)臅r(shí)候調(diào)用,通常用來(lái)處理一些清理資源的工作,因此稱為收尾機(jī)制。???

            Garbage?collection?垃圾回收機(jī)制:當(dāng)需要分配的內(nèi)存空間不再使用的時(shí)候,JVM將調(diào)用垃圾回收機(jī)制來(lái)回收內(nèi)存空間。???

            Guarded?region?監(jiān)控區(qū)域:一段用來(lái)監(jiān)控錯(cuò)誤產(chǎn)生的代碼。???

            Heap堆:Java中管理內(nèi)存的結(jié)構(gòu)稱作堆。???

            Identifiers?標(biāo)識(shí)符:即指定類、方法、變量的名字。注意Java是大小寫敏感的語(yǔ)言。???

            Import?statement?引入語(yǔ)法:引入語(yǔ)法允許你可以不使用某個(gè)類的全名就可以參考這個(gè)類。???

            Inheritance?繼承:繼承是面向?qū)ο蟪绦蛟O(shè)計(jì)的重要特點(diǎn),它是一種處理方法,通過(guò)這一方法,一個(gè)對(duì)象可以獲得另一個(gè)對(duì)象的特征。???

            Inner?classes?內(nèi)部類:內(nèi)部類與一般的類相似,只是它被聲明在類的內(nèi)部,或者甚至某個(gè)類方法體中。???

            Instance?實(shí)例:類實(shí)例化以后成為一個(gè)對(duì)象。???

            Instance?variable?實(shí)例變量:實(shí)例變量定義在對(duì)象一級(jí),它可以被類中的任何方法或者其他類的中方法訪問(wèn),但是不能被靜態(tài)方法訪問(wèn)。???

            Interface?接口:接口定義的是一組方法或者一個(gè)公共接口,它必須通過(guò)類來(lái)實(shí)現(xiàn)。
          Java?source?file?Java源文件:Java源程序包含的是Java程序語(yǔ)言計(jì)算機(jī)指令。???

            Java?Virtual?Machine?(JVM)?Java虛擬機(jī):解釋和執(zhí)行Java字節(jié)碼的程序,其中Java字節(jié)碼由Java編譯器生成。???

            javac?Java編譯器:Javac是Java編譯程序的名稱。???

            JVM?Java虛擬機(jī):見(jiàn)Java虛擬機(jī)???

            Keywords?關(guān)鍵字:即Java中的保留字,不能用作其他的標(biāo)識(shí)符。???

            Layout?managers?布局管理器:布局管理器是一些用來(lái)負(fù)責(zé)處理容器中的組件布局排列的類。???

            Local?inner?classes?局部?jī)?nèi)部類:在方法體中,或者甚至更小的語(yǔ)句塊中定義的內(nèi)部類。???

            Local?variable?局部變量:在方法體中聲明的變量???

            Member?inner?classes?成員內(nèi)部類:定義在封裝類中的沒(méi)有指定static修飾符的內(nèi)部類。???

            Members?成員:類中的元素,包括方法和變量。???

            Method?方法:完成特定功能的一段源代碼,可以傳遞參數(shù)和返回結(jié)果,定義在類中。???

            Method?local?variables?方法局部變量:見(jiàn)自動(dòng)變量Automatic?variables???

            Modifier?修飾符:用來(lái)修飾類、方法或者變量行為的關(guān)鍵字。???

            Native?methods?本地方法:本地方法是指使用依賴平臺(tái)的語(yǔ)言編寫的方法,它用來(lái)完成Java無(wú)法處理的某些依賴于平臺(tái)的功能。???

            Object?對(duì)象:一旦類實(shí)例化之后就成為對(duì)象。???

            Overloaded?methods?名稱重載方法:方法的名稱重載是指同一個(gè)類中具有多個(gè)方法,使用相同的名稱而只是其參數(shù)列表不同。???

            Overridden?methods?覆蓋重載方法:方法的覆蓋重載是指父類和子類使用的方法采用同樣的名稱、參數(shù)列表和返回類型。???

            Package?包:包即是將一些類聚集在一起的一個(gè)實(shí)體。???

            Parent?class?父類:被其他類繼承的類。也見(jiàn)基類。???

            Private?members?私有成員:私有成員只能在當(dāng)前類被訪問(wèn),其他任何類都不可以訪問(wèn)之。???

            Public?members?公共成員:公共成員可以被任何類訪問(wèn),而不管該類屬于那個(gè)包。???

            Runtime?exceptions?運(yùn)行時(shí)間異常:運(yùn)行時(shí)間異常是一種不能被你自己的程序處理的異常。通常用來(lái)指示程序BUG。???

            Source?file?源文件:源文件是包含你的Java代碼的一個(gè)純文本文件。???

            Stack?trace?堆棧軌跡:如果你需要打印出某個(gè)時(shí)間的調(diào)用堆棧狀態(tài),你將產(chǎn)生一個(gè)堆棧軌跡。???

            Static?inner?classes?靜態(tài)內(nèi)部類:靜態(tài)內(nèi)部類是內(nèi)部類最簡(jiǎn)單的形式,它于一般的類很相似,除了被定義在了某個(gè)類的內(nèi)部。???

            Static?methods?靜態(tài)方法:靜態(tài)方法聲明一個(gè)方法屬于整個(gè)類,即它可以不需要實(shí)例化一個(gè)類就可以通過(guò)類直接訪問(wèn)之。???

            Static?variable?靜態(tài)變量:也可以稱作類變量。它類似于靜態(tài)方法,也是可以不需要實(shí)例化類就可以通過(guò)類直接訪問(wèn)。???

            Superclass?超類:被一個(gè)或多個(gè)類繼承的類。???

            Synchronized?methods?同步方法:同步方法是指明某個(gè)方法在某個(gè)時(shí)刻只能由一個(gè)線程訪問(wèn)。???

            Thread?線程:線程是一個(gè)程序內(nèi)部的順序控制流。???

            Time-slicing?時(shí)間片:調(diào)度安排線程執(zhí)行的一種方案。???

            Variable?access?變量訪問(wèn)控制:變量訪問(wèn)控制是指某個(gè)類讀或者改變一個(gè)其他類中的變量的能力。???

            Visibility?可見(jiàn)性:?可見(jiàn)性體現(xiàn)了方法和實(shí)例變量對(duì)其他類和包的訪問(wèn)控制。

          posted @ 2007-01-19 10:11 sxt 閱讀(469) | 評(píng)論 (0)編輯 收藏

               摘要: 作為測(cè)試,我們新建一個(gè)TUser對(duì)象,其image屬性中,保存了一個(gè)圖片文件的二進(jìn)制內(nèi)容。而其resume屬性,我們以一個(gè)簡(jiǎn)單的字符串作為填充。 ? ?1 TUser?user? = new ?TUser();? ...  閱讀全文

          posted @ 2006-12-07 10:27 sxt 閱讀(12452) | 評(píng)論 (8)編輯 收藏

          1. Assigned
          ???? 主鍵由應(yīng)用邏輯產(chǎn)生,數(shù)據(jù)交由Hibernate保存時(shí),主鍵值已經(jīng)設(shè)置完畢,無(wú)需Hibernate干預(yù)。
          2.? hilo
          ??? 通過(guò)hi/lo算法實(shí)現(xiàn)的主鍵生成機(jī)制,需要額外的數(shù)據(jù)庫(kù)表保存主鍵生成歷史狀態(tài).
          3.? seqhilo
          ??? 與hilo類似,通過(guò)hi/lo算法實(shí)現(xiàn)的主鍵生成機(jī)制,只是主鍵歷史狀態(tài)保存在Sequence中,適用于支持Sequence的數(shù)據(jù)庫(kù),如Oracle。
          4.? increment
          ??? 主鍵按數(shù)值順序遞增。此方式的實(shí)現(xiàn)機(jī)制為在當(dāng)前應(yīng)用實(shí)例中維持一個(gè)變量,以保存著當(dāng)前的最大值,之后每次需要生成主鍵的時(shí)候?qū)⒋酥导?作為主鍵。這種方式可能產(chǎn)生的問(wèn)題是:如果當(dāng)前有多個(gè)實(shí)例訪問(wèn)同一個(gè)數(shù)據(jù)庫(kù),那么由于各個(gè)實(shí)例各自維護(hù)主鍵狀態(tài),不同實(shí)例可能生成同樣的主鍵,從而造成主鍵重復(fù)異常。因此,如果同一數(shù)據(jù)庫(kù)有多個(gè)實(shí)例訪問(wèn),此方式必須避免使用。
          5.? identity
          ??? 采用數(shù)據(jù)庫(kù)提供的主鍵生成機(jī)制,如SQL Server, MySQL中的自增主鍵生成機(jī)制。
          6.? sequence
          ??? 采用數(shù)據(jù)庫(kù)提供的sequence機(jī)制生成主鍵.如Oralce Sequence.
          7.? native
          ??? 由Hibernate根據(jù)數(shù)據(jù)庫(kù)適配器中的定義,自動(dòng)采用identity, hilo, sequence的其中一種作為主鍵生成方式。
          8.? uuid.hex
          ??? 由Hibernate基于,28位惟一值產(chǎn)生算法,根據(jù)當(dāng)前設(shè)備IP,時(shí)間,JVM啟動(dòng)時(shí)間,內(nèi)部自增量等4個(gè)參數(shù)生成十六進(jìn)制數(shù)值(編碼后以長(zhǎng)度為32位的字符串表示)作為主鍵。這種算法在最大程度上保證了產(chǎn)生ID的惟一性,即使是在多實(shí)例并發(fā)運(yùn)行的情況下。當(dāng)然,重復(fù)的概率在理論上依然存在,只是實(shí)在過(guò)于渺茫(可能數(shù)萬(wàn)年才出現(xiàn)一次)。一般而言,利用uuid.hex方式生成主鍵將提供最好的數(shù)據(jù)插入性能和數(shù)據(jù)庫(kù)平臺(tái)適應(yīng)性。
          9.? uuid.string·
          ??? 與uuid.hex類似,只是生成的主鍵未進(jìn)行編碼(長(zhǎng)度16位)。在某些數(shù)據(jù)庫(kù)中可能出現(xiàn)問(wèn)題(如PostgreSQL )。
          10. foreign
          ??? 使用外部表的字段作為主鍵,此類主鍵生成機(jī)制我們將在數(shù)據(jù)關(guān)聯(lián)部分結(jié)合實(shí)例進(jìn)行講解。
          11. select
          ??? Hibernate 3中新引入的主鍵獲取機(jī)制,主要針對(duì)遺留系統(tǒng)的改造工程。在一些早期系統(tǒng)中,主鍵可能依賴觸發(fā)器生成,即當(dāng)數(shù)據(jù)庫(kù)發(fā)生insert操作時(shí),通過(guò)觸發(fā)器捕獲這一操作,并為主鍵賦值。此時(shí),我們就必須在插入數(shù)據(jù)之后,再次通過(guò)某一識(shí)別字段讀取己插入的數(shù)據(jù),獲取其主鍵數(shù)據(jù)。
          <轉(zhuǎn)自:深入淺出hibernate>

          posted @ 2006-12-06 13:20 sxt 閱讀(813) | 評(píng)論 (0)編輯 收藏

          北京悶熱的晚上已經(jīng)讓我和我的愛(ài)姬(機(jī))已經(jīng)無(wú)法承受這窒息的空氣。Lomboz3卻還要在此時(shí)此刻火上澆油,搞了兩三天了,也沒(méi)個(gè)頭緒。網(wǎng)上那些一知半解、沒(méi)頭沒(méi)腦的文章更是讓人煩惱。
          放松一下!一杯加了二分之一杯冰的極冷冰茶下肚后,整個(gè)人從頭涼到腳。
          OK!開(kāi)始吧!

          1、??環(huán)境:
          WIN2000pro
          JDK 1.4.2_05 – Sun官方網(wǎng)站下載
          Eclipse release 3.0 – Eclipse 官方網(wǎng)站下載
          Tomcat 5.0.16 – Jakarta官方網(wǎng)站下載
          Lomboz 3.0 for Eclipse 3.0 – Lomboz官方網(wǎng)站下載,包括兩個(gè)文件emf-sdo-runtime-2.0.0.zip,lomboz.3.zip。

          2、??安裝軟件、配置環(huán)境變量(一下為我自己的環(huán)境)
          JDK:
          JAVA_HOME:C:\j2sdk1.4.2_05
          PATH: %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\j2sdk1.4.2_05\bin;
          CLASSPATH: .;C:\j2sdk1.4.2_05\lib\tools.jar;C:\j2sdk1.4.2_05\lib\dt.jar;

          TOMCAT:
          TOMCAT_HOME: C:\Tomcat5

          Lomboz:
          先將emf-sdo-runtime-2.0.0.zip解壓到Eclipse3的目錄下;
          然后 lomboz.3.zip 解壓到Eclipse3的目錄下

          Eclipse:
          與Eclipse 2不同,插件并不是解壓到Eclipse中在啟動(dòng)Eclipse后就可以被發(fā)現(xiàn)。
          需要在Help—Software Updates—Manager Configuraton...中啟用所安裝的插件。如下圖:
          ?

          啟動(dòng)EMF2.0.0和SDO2.0.0
          工具欄上應(yīng)該出現(xiàn),Lomboz J2EE View的圖標(biāo)了。

          3、??詳細(xì)配置
          以下配置皆在windows—Perferences中進(jìn)行。
          (1)??Build Path
          ?

          (2) Lomboz
          ?


          (3)Lomboz—Server Definitions
          Server Types選擇Apache Tomcat v5.0.x
          a、??Properties
          ?

          b、??Server Classpath

          (縮略圖,點(diǎn)擊圖片鏈接看原圖)


          c、??Project Classpath
          ?


          4、創(chuàng)建測(cè)試工程和頁(yè)面
          并在C:\Tomcat5\conf\server.xml中加入如下內(nèi)容,連接到項(xiàng)目。
          //... ...
          <Context debug="0"
          docBase="D:\workspace\myJSP\test"
          path="/test" reloadable="true" workDir="D:\workspace\myJSP\j2src\org\apache\jsp"/>

          </Host>

          </Engine>
          //... ...

          另外,在建立工程的時(shí)候,在向?qū)нM(jìn)行到“create j2ee module”時(shí),在“web module”中應(yīng)該建立項(xiàng)目容器目錄,我的容器目錄起名“test”;然後,在“Targeted Servers”中選擇“Apache Tomcat v5.0.x”。
          ?

          啟動(dòng)Lomboz,然后在IE中測(cè)試頁(yè)面。
          ?

          終于OK了,在配置過(guò)程中幾乎所有的問(wèn)題都出在Server Classpath中,經(jīng)過(guò)試驗(yàn)后,上面截圖中所包含的jar文件,就可以保證你的LOMBOZ在運(yùn)行過(guò)程中不會(huì)出錯(cuò)了。

          即使出現(xiàn)了問(wèn)題,也不要著急,看清楚提示,然后檢查是否有Jar包沒(méi)有加到Server Classpath路徑上。

          哦,心情舒爽了很多,外面夜雨也開(kāi)始嘩嘩的下了起來(lái)。
          風(fēng)把帶有雨的氣息吹進(jìn)屋內(nèi),呵呵,
          可以安心、踏實(shí)的睡覺(jué)了。

          轉(zhuǎn)自:http://www.javaworld.com.tw/jute/post/view?bid=10&id=60505&sty=1&tpg=1&age=0

          posted @ 2006-12-01 11:25 sxt 閱讀(853) | 評(píng)論 (0)編輯 收藏

          未標(biāo)題-1.gif???? 在用Eclipse新建Web Project時(shí)總是會(huì)有如圖的目錄結(jié)構(gòu),而在我們部署自己的網(wǎng)站時(shí)往往會(huì)將我們所建立的文件夾部署為網(wǎng)站的根目錄,這是不對(duì)的,會(huì)使jsp文件找不到import語(yǔ)句導(dǎo)入的類,正確的部署應(yīng)該是把WebRoot部署為網(wǎng)站的根目錄,另外由于Eclipse中有增加用戶庫(kù)的功能,因此往往會(huì)導(dǎo)致我們沒(méi)有把全部需要的jar文件都導(dǎo)入lib包中,從而使jsp文件運(yùn)行時(shí)出錯(cuò)。另外,在配置jsp運(yùn)行環(huán)境時(shí)一定要將jdk目錄下的dt.jar和tools.jar加入classpath變量中。



          posted @ 2006-11-29 15:02 sxt 閱讀(332) | 評(píng)論 (0)編輯 收藏

          轉(zhuǎn)自:http://www.aygfsteel.com/rickhunter/articles/28133.html

          1、 Log4j是什么?
          ? Log4j可以幫助調(diào)試(有時(shí)候debug是發(fā)揮不了作 用的)和分析,要下載和了解更詳細(xì)的內(nèi)容,還是訪問(wèn)其官方網(wǎng)站吧:
          http://jakarta.apache.org/log4j

          2、Log4j的概念
          ?? Log4j中有三個(gè)主要的組件,它們分別是
          Logger、Appender和Layout,Log4j 允許開(kāi)發(fā)人員定義多個(gè)Logger,每個(gè)Logger擁有自己的名字,Logger之間通過(guò)名字來(lái)表明隸屬關(guān)系。有一個(gè)Logger稱為Root,它永遠(yuǎn)存在,且不能通過(guò)名字檢索或引用,可以通過(guò)Logger.getRootLogger()方法獲得,其它Logger通過(guò) Logger.getLogger(String name)方法。
          ?? Appender則是用來(lái)指明將所有的log信息存放到什么地方,Log4j中支持多種appender,如
          console、files、GUI components、NT Event Loggers等,一個(gè)Logger可以擁有多個(gè)Appender,也就是你既可以將Log信息輸出到屏幕,同時(shí)存儲(chǔ)到一個(gè)文件中。
          ?? Layout的作用是控制Log信息的輸出方式,也就是格式化輸出的信息。
          ?? Log4j中將要輸出的Log信息定義了5種級(jí)別,依次為DEBUG、INFO、WARN、ERROR和FATAL,當(dāng)輸出時(shí),只有級(jí)別高過(guò)配置中規(guī)定的級(jí)別的信息才能真正的輸出,這樣就很方便的來(lái)配置不同情況下要輸出的內(nèi)容,而不需要更改代碼,這點(diǎn)實(shí)在是方便啊。

          3、Log4j的配置文件
          ? 雖然可以不用配置文件,而在程序中實(shí)現(xiàn)配置,但這種方法在如今的系統(tǒng)開(kāi)發(fā)中顯然是不可取的,能采用配置文件的地方一定一定要用配置文件。Log4j支持兩種格式的配置文件:XML格式和Java的property格式,本人更喜歡后者,首先看一個(gè)簡(jiǎn)單的例子吧,如下:

          ? log4j.rootLogger=debug, stdout, R
          ? log4j.appender.stdout=org.apache.log4j.ConsoleAppender
          ? log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

          ? # Pattern to output the caller's file name and line number.
          ? log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

          ? log4j.appender.R=org.apache.log4j.RollingFileAppender
          ? log4j.appender.R.File=example.log
          ? log4j.appender.R.MaxFileSize=
          100KB

          ? # Keep one backup file
          ? log4j.appender.R.MaxBackupIndex=1

          ? log4j.appender.R.layout=org.apache.log4j.PatternLayout
          ? log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n?????????

          ? 首先,是設(shè)置root,格式為 log4j.rootLogger=[level],appenderName,?...,其中l(wèi)evel就是設(shè)置需要輸出信息的級(jí)別,后面是appender的輸出的目的地,appenderName就是指定日志信息輸出到哪個(gè)地方。您可以同時(shí)指定多個(gè)輸出目的地。 配置日志信息輸出目的地Appender,其語(yǔ)法為
          ? 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(控制臺(tái))
          ? org.apache.log4j.FileAppender(文件)
          ? org.apache.log4j.DailyRollingFileAppender(每天產(chǎn)生一個(gè)日志文件)
          ? org.apache.log4j.RollingFileAppender(文件大小到達(dá)指定尺寸的時(shí)候產(chǎn)生新文件)
          ? org.apache.log4j.WriterAppender(將日志信息以流格式發(fā)送到任意指定的地方)
          配置日志信息的格式(布局),其語(yǔ)法為:
          ? 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(包含日志信息的級(jí)別和信息字符串),
          ? org.apache.log4j.TTCCLayout(包含日志產(chǎn)生的時(shí)間、線程、類別等等信息)

          Log4J采用類似C語(yǔ)言中的printf函數(shù)的打印格式格式化日志信息,打印參數(shù)如下: %m 輸出代碼中指定的消息

             %p 輸出優(yōu)先級(jí),即DEBUG,INFO,WARN,ERROR,F(xiàn)ATAL
            %r 輸出自應(yīng)用啟動(dòng)到輸出該log信息耗費(fèi)的毫秒數(shù)
            %c 輸出所屬的類目,通常就是所在類的全名
            %t 輸出產(chǎn)生該日志事件的線程名
            %n 輸出一個(gè)回車換行符,Windows平臺(tái)為“\r\n”,Unix平臺(tái)為“\n”
            %d 輸出日志時(shí)間點(diǎn)的日期或時(shí)間,默認(rèn)格式為ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},輸出類似:
          2002年10月18日 22:10:28,921
            %l 輸出日志事件的發(fā)生位置,包括類目名、發(fā)生的線程,以及在代碼中的行數(shù)。舉例:Testlog4.main(TestLog4.java:10)



          4、Log4j在程序中的使用

          ? 要在自己的程序中使用Log4j,首先需要將commons-logging.jar和logging-log4j-1.2.9.jar導(dǎo)入到構(gòu)建路徑中。然后再將log4j.properties放到src根目錄下。這樣就可以在程序中使用log4j了。在類中使用log4j,
          首先聲明一個(gè)靜態(tài)變量 Logger logger=Logger.getLog("classname");現(xiàn)在就可以使用了,用法如下:logger.debug("debug message")或者logger.info("info message"),看下面一個(gè)小例子:

          ? 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.");
          ??? }
          ??}

          posted @ 2006-11-29 09:57 sxt 閱讀(684) | 評(píng)論 (0)編輯 收藏

          主站蜘蛛池模板: 隆回县| 沅陵县| 祁连县| 图木舒克市| 大冶市| 扶风县| 甘孜| 陈巴尔虎旗| 顺昌县| 南昌市| 沽源县| 阿坝| 桂阳县| 新泰市| 五常市| 长阳| 钦州市| 敖汉旗| 弋阳县| 稻城县| 阳泉市| 定远县| 天柱县| 丹凤县| 唐山市| 长治市| 当涂县| 涟源市| 上饶县| 辉县市| 长泰县| 惠安县| 巴林右旗| 石楼县| 山阴县| 泸水县| 栾川县| 二连浩特市| 马公市| 内乡县| 公安县|