DWR日志 在log4j.xml配置
一、日志
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日志 在log4j.xml配置的更多相关文章
- commons-logging和Log4j 日志管理/log4j.properties配置详解
commons-logging和Log4j 日志管理 (zz) 什么要用日志(Log)? 这个……就不必说了吧. 为什么不用System.out.println()? 功能太弱:不易于控制.如果暂时不 ...
- log4j.properties和log4j.xml配置
>>>>1. 概述<<<< 1.1. 背景 在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统 ...
- Log4j XML配置
问题描述: Log4j XML配置 问题解决: (1)编写log4j.xml配置文件 注: 如上的XML文件必须以log4j.xml文件命名,否则无法读取配置文件,同样的如果 ...
- Log4j.xml配置(rolling示例)
Log4j.xml配置(很详细) <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4 ...
- log4j日志文件 log4j.xml log4j.properties配置
1,导入log4j jar包; 2,配置log4j.xml或log4j.properties文件; ------------------------------------------------- ...
- Log4j XML 配置
Xml代码 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configurat ...
- log4j.xml配置示例
这是log4j1.x版本讲解,log4j-1.2.16.jar 1. 一般的log4j.xml的两种配置方式: 1.Logger 完成日志信息的处理定义输出的层次和决定信息是否输出DEBUG&l ...
- java日志框架log4j详细配置及与slf4j联合使用教程
最后更新于2017年02月09日 一.log4j基本用法 首先,配置log4j的jar,maven工程配置以下依赖,非maven工程从maven仓库下载jar添加到“build path” <d ...
- Log4J.xml配置详解
原文地址:https://blog.csdn.net/genyizha/article/details/74502812 Appender Appender:日志输出器,配置日志的输出级别.输出位置等 ...
随机推荐
- Pytorch的tensor数据类型
基本类型 torch.Tensor是一种包含单一数据类型元素的多维矩阵. Torch定义了七种CPU tensor类型和八种GPU tensor类型: Data tyoe CPU tensor GPU ...
- 【Notepad++】notepad++主题和字体设置(非常好看舒服的)
#效果图 1.字体:Courier New 字号:14号字体 2.字体:Consolas 字号:14号字体 #设置方法 1.设置---语言格式设置 2.选择主题,同时勾选“使用全局字体”“使用全局字体 ...
- appium 使用name 定位报错 Locator Strategy 'name' is not supported for this session【appium-desktop】
RF中使用 name定位 报错提示: Locator Strategy 'name' is not supported for this session 解决: 1.打开本地文件 driver.js ...
- C# 使用Json.NET对数据进行序列化和反序列化 | c# json serialize and deserialize using json.net JsonConvert
本文首发于个人博客https://kezunlin.me/post/22391aa3/,欢迎阅读最新内容! c# json serialize and deserialize using json.n ...
- Linux Ubuntu 16.04 安装步骤+远程环境
简介 Ubantu 16.04 系统是一款比较稳定的linux系统,适合用户使用以及针对一些兼容性的服务搭建. 这里我推荐安装桌面版,用于方便使用. 准备工作 1.准备1个U盘空间5G以上 2.需下载 ...
- Spring中ApplicationListener的使用
背景 ApplicationListener是Spring事件机制的一部分,与抽象类ApplicationEvent类配合来完成ApplicationContext的事件机制. 如果容器中存在Appl ...
- Serlvet、JSP和JSTL的联系
没有无缘无故的爱和恨,没有无缘无故的编程 前言: 想这世间,没有无缘无故的爱,也没有无缘无故的恨,一切都有有原因的,我想编程亦是如此,技术时常更新,程序员时常学习,随着时间的推移,程序员发际线的增高, ...
- 致Python初学者的六点建议
Python是最容易学习的编程语言之一,其语法近似英语.通常,初学者只会遇到一些小麻烦,如强制缩进.在函数中使用self等. 然而,当开始阅读.复制和编辑他人代码时,麻烦就接踵而至了. 这里,我将解释 ...
- Python中全局变量的引用与修改之格式影响
先来看下面的代码及执行结果: a = 1 b = [2,3] def nums(): a = 2 b[0] = 0 print(a) print(b) print(a) print(b) nums() ...
- PDF怎么转换为CAD文件?这两种方法你的会
在日常的办公中,我们最常见的文件格式就是PDF格式的,因为PDF文件的安全性是比较高的,可以防止不小心触碰到键盘修改文件内容,而且PDF文件便于进行文件的传输.但是有时候也需要将PDF转换成CAD,那 ...