Logj是Apache的一個開放源代碼項目通過使用Logj我們可以控制日志信息輸送的目的地是控制台文件GUI組件甚至是套接口服務器NT的事件記錄器UNIX Syslog守護進程等我們也可以控制每一條日志的輸出格式通過定義每一條日志信息的級別我們能夠更加細致地控制日志的生成過程最令人感興趣的就是這些可以通過一個配置文件來靈活地進行配置而不需要修改應用的代碼
如此強大的優越性實際上手並不難尤其在spring框架下使用logj更是容易下面介紹一下spring下的logj應用
當然先要下載相應的jar包(logjjar)
首先是webxml的配置在webxml中加入如下配置
<contextparam>
<paramname>logjConfigLocation</paramname>
<paramvalue>/WEBINF/props/logjproperties</paramvalue>
</contextparam>
<contextparam>
<paramname>logjRefreshInterval</paramname>
<paramvalue></paramvalue>
</contextparam>
<listener>
<listenerclass>
orgspringframeworkwebutilLogjConfigListener
</listenerclass>
</listener>
說明在上文的配置裡在上文的配置裡LogjConfigListener會去WEBINF/props/logjpropeties 讀取配置文件;開一條watchdog線程每秒掃描一下配置文件的變化(這樣在web服務啟動後再去修改配置文件也不用重新啟動web服務了);並把web目錄的路徑壓入一個叫webapproot的系統變量(webapproot將在logjproperties文件中使用)
接下來是logjproperties配置文件了把它放在WEBINF/props下具體配置如下
#logjrootLogger = [ level ] appenderName appenderName
logjrootLogger = INFO console R
#level=INFOall can be output
#console is set to be a ConsoleAppender
nsole = orgapachelogjConsoleAppender
#console have four patterns
#orgapachelogjHTMLLayout
#orgapachelogjPatternLayout
#orgapachelogjSimpleLayout
#orgapachelogjTTCCLayout
nsolelayout = orgapachelogjPatternLayout
#define the output type
nsolelayoutConversionPattern = %d{yyyyMMdd HH:mm:ss} [%c][%p] %m%n
#file is set to output to a extra file
logjappenderR = orgapachelogjRollingFileAppender
#the absolute route of the logj file
logjappenderRFile = ${webapproot}/logtxt
#the size
logjappenderRMaxFileSize = KB [Page]
#back up a file
logjappenderRMaxBackupIndex =
logjappenderRlayout = orgapachelogjPatternLayout
logjappenderRlayoutConversionPattern=%d{yyyyMMdd HH:mm:ss} [%c][%p] %m%n
上面的配置文件說明log信息將以兩種方式輸出(文件和控制台)${webapproot}表示應用的根目錄下(例如本應用名稱為ABC則logtxt的位置為tomact\\webapp\\ABC下)
最後在程序中想要輸出log的地方加入logj的支持
()引入 import orgapachelogjLogger
()聲明一個logger
private static Logger logger = LoggergetLogger(ClassNameclass);
()在程序中的相應位置加入輸出信息
(\用戶登錄:\+usergetAccount());
ok完成了當有登錄時會在控制台和文件中同時輸出log信息如下
:: [commywebUserAction][INFO] 用戶登錄:yangsq
附注(轉)
以下是配置文件(logjproperties)的一些重要的語法
定義配置文件
其實您也可以完全不使用配置文件而是在代碼中配置Logj環境但是使用配置文件將使您的應用程序更加靈活
Logj支持兩種配置文件格式一種是XML格式的文件一種是Java特性文件(鍵=值)下面我們介紹使用Java特性文件做為配置文件的方法
配置根Logger其語法為
logjrootLogger = [ level ] appenderName appenderName …
其中level 是日志記錄的優先級分為OFFFATALERRORWARNINFODEBUGALL或者您定義的級別Logj建議只使用四個級別優先級從高到低分別是ERRORWARNINFODEBUG通過在這裡定義的級別您可以控制到應用程序中相應級別的日志信息的開關比如在這裡定義了INFO級別則應用程序中所有DEBUG級別的日志信息將不被打印出來
appenderName就是指定日志信息輸出到哪個地方您可以同時指定多個輸出目的地
配置日志信息輸出目的地Appender其語法為
logjappenderappenderName = fullyqualifiednameofappenderclass
logjappenderappenderNameoption = value
…
logjappenderappenderNameoption = valueN
其中Logj提供的appender有以下幾種
orgapachelogjConsoleAppender(控制台)
orgapachelogjFileAppender(文件)
orgapachelogjDailyRollingFileAppender(每天產生一個日志文件)orgapachelogjRollingFileAppender(文件大小到達指定尺寸的時候產生一個新的文件)
orgapachelogjWriterAppender(將日志信息以流格式發送到任意指定的地方)
配置日志信息的格式(布局)其語法為
logjappenderappenderNamelayout = fullyqualifiednameoflayoutclass
logjappenderappenderNamelayoutoption = value
…
logjappenderappenderNamelayoutoption = valueN [Page]
其中Logj提供的layout有以下幾種
orgapachelogjHTMLLayout(以HTML表格形式布局)
orgapachelogjPatternLayout(可以靈活地指定布局模式)
orgapachelogjSimpleLayout(包含日志信息的級別和信息字符串)
orgapachelogjTTCCLayout(包含日志產生的時間線程類別等等信息)
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28375.html