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:日志输出器,配置日志的输出级别.输出位置等 ...
随机推荐
- python--基础知识点梳理(一)数据类型、迭代生成装饰器、函数
可变数据类型和不可变数据类型有哪些? # 可变数据类型:列表.字典.集合 # 不可变数据类型:数字.元祖.字符串 常见数据结构 # 栈(stack)--先进后出. 队列(queue)-先进先出.链表( ...
- 将scrapy爬取数据通过django入到SQLite数据库
1. 在django项目根目录位置创建scrapy项目,django_12是django项目,ABCkg是scrapy爬虫项目,app1是django的子应用 2.在Scrapy的settings.p ...
- iOS:捋一遍View的生命周期
一.介绍 前面介绍了VC的生命周期,闲着没事也来捋一捋View的生命周期,简单用两个类型的View来监测.一个View纯代码创建,另一个View使用Xib创建. 二 .代码 MyCodeView: ...
- Loj #6503. 「雅礼集训 2018 Day4」Magic
Loj #6503. 「雅礼集训 2018 Day4」Magic 题目描述 前进!前进!不择手段地前进!--托马斯 · 维德 魔法纪元元年. 1453 年 5 月 3 日 16 时,高维碎片接触地球. ...
- C# Event在.Net规则下由接口定义的实现
最近在学C#(教材<C# in a nutshell>很不错的说),看完delegate(委托)以后,紧接着就是event(事件)了,个人对跟.Net相关的东西并没有什么兴趣(毕竟是会增加 ...
- Java中的集合-您必须知道的13件事
Java Collections Framework是Java编程语言的核心部分之一.集合几乎用于任何编程语言中.大多数编程语言都支持各种类型的集合,例如List, Set, Queue, Stack ...
- 前端笔记之Vue(六)分页排序|酷表单实战&Vue-cli
一.分页排序案例 后端负责提供接口(3000) 前端负责业务逻辑(8080) 接口地址:从8080跨域到3000拿数据 http://127.0.0.1:3000/shouji http://127. ...
- [08]ASP.NET Core 中 launchsettings.json 启动配置文件
ASP.NET Core launchsettings.json 启动配置文件 本文作者:梁桐铭- 微软最有价值专家(Microsoft MVP) 文章会随着版本进行更新,关注我获取最新版本 本文出自 ...
- Octave Convolution详解
前言 Octave Convolution来自于这篇论文<Drop an Octave: Reducing Spatial Redundancy in Convolutional Neural ...
- Vue常用语法
一.模板语法 1.双大括号表达式 [语法:] {{exp}} 用于向页面输入数据,即页面显示数据. [举例:] <!doctype html> <html lang="en ...