一、日志

  DWR依赖 Apache Commons Logging,可以使用log4j实现日志记录功能。

1.1 日志简介

  和其他日志框架一样,当设置低等级的日志时所有高于此等级的日志也将会打印出来。DWR日志分为以下四种:

  • CALL:最详细的记录,将记录所有输入输出的DWR请求。
  • EXCEPTION:将记录所有的可检查异常。
  • RUNTIMEEXCEPTION:将记录所有运行时异常。
  • ERROR:将记录所有Errors。

  所有的日志将会统一输出到同一个logger - org.directwebremoting.log.accessLog,这将允许应用程序很方便的从其它应用日志中抽离出DWR日志。

1.2 日志设置

  通过在servlet中添加参数即可:

<init-param>
<param-name>accessLogLevel</param-name>
<param-value>EXCEPTION</param-value>
</init-param>

  debug模式下,默认开启EXCEPTION级别的日志,可以被有效的日志设置进行修改。

  非debug模式中,不指定日志级别或者指定错误的日志级别,所有级别的日志将不会输出。

1.3 配置log4j

  使用log4j需要log4j的jar包和配置文件,下面展示一个简单的例子:

<?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>

1.4 DWR日志和普通日志关系

  看到这里应该可以发现DWR应用着两种日志配置,一种是commons-logging的通用日志级别,还有一种是自己的日志级别,可以从以下源码看出:

  上面的代码是DWR应用于日志框架进行的日志记录,自己的日志记录:

  可以发现DWR自己的日志是在通用日志级别上又套了一层日志,而且是info级别的,因此建议,开发阶段通用日志级别设置为debug,DWR日志级别设置为call,生成阶段时,通用日志级别设置为info,DWR日志级别不设置即可。

二、js压缩

  通常情况下,js文件越多,网页打开越慢,所以一般都会对js文件进行处理,比如压缩或者合并。

2.1 DWR对js的处理

  当在DWR的非debug模式下,DWR会自动检测是否在classpath下发现dojo-shrinksafe.jar或者yuicompressor.jar,若发现则将自动启用压缩。

2.2 自定义压缩

  当然你也可以通过实现org.directwebremoting.extend.Compressor接口,来实现自己的压缩算法。并进行如下配置:

<init-param>
<param-name>org.directwebremoting.extend.Compressor</param-name>
<param-value>com.example.Compressor</param-value>
</init-param>

2.3 使用jawr

  当然值得试一下jawr,jawr专门为DWR提供了插件。jawr有各种好处,后续会对其进行介绍。

【DWR系列06】- DWR日志及js压缩的更多相关文章

  1. 【DWR系列02】-DWR逆向Ajax即服务器推送

    .literal { background-color: #f2f2f2; border: 1px solid #cccccc; padding: 1px 3px 0; white-space: no ...

  2. 【DWR系列03】- DWR主要类详解

    img { border: 1px solid black } 一.简介 首先应该了解这个jar包主要的类,了解了类,就了解了DWR.DWR的在线javadoc:http://directwebrem ...

  3. 【DWR系列01】-DWR简介及入门例子

    .literal { background-color: #f2f2f2; border: 1px solid #cccccc; padding: 1px 3px 0; white-space: no ...

  4. gulp-uglify《JS压缩》----gulp系列(四)

    本节实现JS压缩,在实现压缩前,先配置JS任务,设置源目录和输出目录. 在系列(三)代码的基础上,再进行扩展. 1.找到gulp->config.js,对JS进行源目录(src->img) ...

  5. 26、ASP.NET MVC入门到精通——后台管理区域及分离、Js压缩、css、jquery扩展

    本系列目录:ASP.NET MVC4入门到精通系列目录汇总 有好一段时间没更新博文了,最近在忙两件事:1.看书,学习中...2.为公司年会节目做准备,由于许久没有练习双截棍了,难免生疏,所以现在临时抱 ...

  6. 10min系列之二日志可视化进阶

    10min系列之二日志可视化进阶(作者原创,同步发布在github) 本文需要有一定的python和前端基础,如果没基础的,请关注我后续的基础教程系列博客 本文所有的demo,都是浏览器下展示的 原创 ...

  7. 区域及分离、Js压缩、css、jquery扩展

    后台管理区域及分离.Js压缩.css.jquery扩展 本系列目录:ASP.NET MVC4入门到精通系列目录汇总 有好一段时间没更新博文了,最近在忙两件事:1.看书,学习中...2.为公司年会节目做 ...

  8. 系列3|走进Node.js之多进程模型

    文:正龙(沪江网校Web前端工程师) 本文原创,转载请注明作者及出处 之前的文章"走进Node.js之HTTP实现分析"中,大家已经了解 Node.js 是如何处理 HTTP 请求 ...

  9. JavaScript进阶系列06,事件委托

    在"JavaScript进阶系列05,事件的执行时机, 使用addEventListener为元素同时注册多个事件,事件参数"中已经有了一个跨浏览器的事件处理机制.现在需要使用这个 ...

随机推荐

  1. pageX、clientX、screenX、offsetX、layerX、x

    参考:http://www.cnblogs.com/xesam/archive/2011/12/08/2280509.html chrome: e.pageX--相对整个页面的坐标e.layerX-- ...

  2. nginx配置ssl证书的方法

    Nginx (读音"engine x") 是一个高性能的HTTP和反向代理服务器,比Apache占用更少的内存,同时也像Apache一样支持HTTPS方式访问(SSL加密).本教程 ...

  3. 开发thinkphp的第一步就是给Application目录(不包括其下的文件)777权限, 关闭selinux

    开发thinkphp的时候, 总是会出现各种个样 的奇怪的毛病, 比如: 说什么Application目录不可写, 比如: 说什么 _STORAGE_WRITE_ERROR, 不能生成 Runtime ...

  4. ump_player在线直播播放器

      ump_player在线直播播放器封装,可以支持加载在线直播流 https://github.com/Mrxdh/EveryExercise/blob/master/ump_player%E5%9 ...

  5. TCP学习之五:客户端、服务端异步传输字符串

    参考学习张子阳大神的博客:http://www.cnblogs.com/JimmyZhang/category/101698.html 消息发送接口: 消息接收接口: 客户端: 服务端: 消息发送类: ...

  6. ps命令

    Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信 ...

  7. Template function 函数模板用法

    #include<iostream> using namespace std; const double PI = 3.1415926; template <class T> ...

  8. HTML 内容居中方式总结

    在HTML网页排版经常会用到关于对其方式的情况,水平居中和垂直居中.特别是水平居中,并不是一个简单的text-align就可以解决所有的情况. 开始之前普及一点HTML知识,目标很明显,不同的页面结构 ...

  9. 利用xhsell登录到远程腾讯云服务器

    xshell连接管理腾讯云服务器图文教程 打开xshell点击文件新建会话框 linux服务器ssh管理软件XSHELL下载及安装图文教程 输入公网IP地址确认下一步 选中服务器连接 一次性接受,不储 ...

  10. 网络第一节——NSURLConnection

    一.NSURLConnection的常用类 (1)NSURL:请求地址 (2)NSURLRequest:封装一个请求,保存发给服务器的全部数据,包括一个NSURL对象,请求方法.请求头.请求体.... ...