spring 配置log4j


<context-param>
<param-name>webAppRootKey</param-name>
<param-value>ssh.root</param-value>
</context-param>

這裏的ssh是http://localhost:8080/ssh/

而root是系統開發目錄中ssh/root

這樣配置文件以及日誌文件可以在spring的幫助下,放到開發環境中的任意位置

<!--由Sprng載入的Log4j配置文件位置-->
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>

在這裏定位配置文件,需要的是從root開始的絕對路徑

<!--Spring默認刷新Log4j配置文件的間隔,單位爲millisecond-->
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>60000</param-value>
</context-param>

<!--Spring log4j Config loader-->
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>

設置監聽器


/////////////////
之後我們就可以配置log4j配置文件了

#先設置級別
log4j.rootCategory=INFO, file
log4j.appender.file=org.apache.log4j.RollingFileAppender
#在這裏設置日誌需要存放的位置,這裏的變量就是我們在web.xml裏設置的
log4j.appender.file.File=${ssh.root}/WEB-INF/logs/subject.log
log4j.appender.file.MaxFileSize=100KB
log4j.appender.file.MaxBackupIndex=0
log4j.appender.file.layout=org.apache.log4j.SimpleLayout
log4j.appender.file.layout.ConversionPattern=[ssh] %p %t %c - %m%n

有了上面的配置,我們就可以查看日誌了!


最後在程序中想要輸出log的地方加入log4j的支持

  (1)引入 import org.apache.log4j.Logger

  (2)聲明一個logger

  private static Logger logger = Logger.getLogger(ClassName.class);

  (3)在程序中的相應位置加入輸出信息

  logger.info("用戶登錄:"+user.getAccount());

  ok,完成了,當有登錄時會在控制檯和文件中同時輸出log信息如下

  2007-01-10 16:02:54 [com.my.web.UserAction]-[INFO] 用戶登錄:yangsq

  附註(轉):

  以下是配置文件(log4j.properties)的一些重要的語法

  定義配置文件

  其實您也可以完全不使用配置文件,而是在代碼中配置Log4j環境。但是,使用配置文件將使您的應用程序更加靈活。

  Log4j支持兩種配置文件格式,一種是XML格式的文件,一種是Java特性文件(鍵=值)。下面我們介紹使用Java特性文件做爲配置文件的方法:

  配置根Logger,其語法爲:

  log4j.rootLogger = [ level ] , appenderName, appenderName, …

  其中,level 是日誌記錄的優先級,分爲OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定義的級別。Log4j建議只使用四個級別,優先級從高到低分別是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(每天產生一個日誌文件),org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸的時候產生一個新的文件),

  org.apache.log4j.WriterAppender(將日誌信息以流格式發送到任意指定的地方)

  配置日誌信息的格式(佈局),其語法爲:
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(包含日誌產生的時間、線程、類別等等信息)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章