DWR依賴 Apache Commons Logging,可使用log4j實現日誌記錄功能。web
和其餘日誌框架同樣,當設置低等級的日誌時全部高於此等級的日誌也將會打印出來。DWR日誌分爲如下四種:算法
全部的日誌將會統一輸出到同一個logger - org.directwebremoting.log.accessLog,這將容許應用程序很方便的從其它應用日誌中抽離出DWR日誌。apache
經過在servlet中添加參數便可:session
<init-param> <param-name>accessLogLevel</param-name> <param-value>EXCEPTION</param-value> </init-param>
debug模式下,默認開啓EXCEPTION級別的日誌,能夠被有效的日誌設置進行修改。app
非debug模式中,不指定日誌級別或者指定錯誤的日誌級別,全部級別的日誌將不會輸出。框架
使用log4j須要log4j的jar包和配置文件,下面展現一個簡單的例子:webapp
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <appender name="console" class="org.apache.log4j.ConsoleAppender"> <param name="Target" value="System.out"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%-5p %c{1} - %m%n"/> </layout> </appender> <appender name="dwrLogFile" class="org.apache.log4j.FileAppender"> <param name="File" value="C:/Program Files/Apache Software Foundation/Tomcat 6.0/webapps/dwr/log/dwrAccess.log"/> <param name="Append" value="true"/> <param name="Threshold" value="DEBUG"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/> </layout> </appender> <appender name="otherFile" class="org.apache.log4j.FileAppender"> <param name="File" value="C:/Program Files/Apache Software Foundation/Tomcat 6.0/webapps/dwr/log/other.log"/> <param name="Append" value="true"/> <param name="Threshold" value="DEBUG"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/> </layout> </appender> <!-- 全部的application exceptions/errors日誌輸出到這裏 --> <category name="org.directwebremoting.log.accessLog"> <priority value="INFO"/> <appender-ref ref="dwrLogFile" /> </category> <!-- 全部的啓動信息輸出到這裏 --> <category name="org.directwebremoting.log.startup"> <priority value="DEBUG"/> <appender-ref ref="dwrLogFile" /> </category> <!-- 全部的script腳本信息輸出到這裏 --> <category name="org.directwebremoting.log.scripts"> <priority value="DEBUG"/> <appender-ref ref="dwrLogFile" /> </category> <!-- 全部的session信息輸出到這裏 --> <category name="org.directwebremoting.log.session"> <priority value="DEBUG"/> <appender-ref ref="dwrLogFile" /> </category> <!-- 其它信息包括內部錯誤信息輸出到這裏 --> <root> <priority value="DEBUG" /> <appender-ref ref="otherFile" /> </root> </log4j:configuration>
看到這裏應該能夠發現DWR應用着兩種日誌配置,一種是commons-logging的通用日誌級別,還有一種是本身的日誌級別,能夠從如下源碼看出:ui
上面的代碼是DWR應用於日誌框架進行的日誌記錄,本身的日誌記錄:this
能夠發現DWR本身的日誌是在通用日誌級別上又套了一層日誌,並且是info級別的,所以建議,開發階段通用日誌級別設置爲debug,DWR日誌級別設置爲call,生成階段時,通用日誌級別設置爲info,DWR日誌級別不設置便可。spa
一般狀況下,js文件越多,網頁打開越慢,因此通常都會對js文件進行處理,好比壓縮或者合併。
當在DWR的非debug模式下,DWR會自動檢測是否在classpath下發現dojo-shrinksafe.jar或者yuicompressor.jar,若發現則將自動啓用壓縮。
固然你也能夠經過實現org.directwebremoting.extend.Compressor接口,來實現本身的壓縮算法。並進行以下配置:
<init-param> <param-name>org.directwebremoting.extend.Compressor</param-name> <param-value>com.example.Compressor</param-value> </init-param>
固然值得試一下jawr,jawr專門爲DWR提供了插件。jawr有各類好處,後續會對其進行介紹。