`

log4j指定的接口输出到指定的目标

 
阅读更多

  spring-mvc.xml

 

 

<!-- extends HandlerInterceptorAdapter -->
	<mvc:interceptors>
	<bean class="com.snailteam.game.controller.TrackHandler"></bean>
	</mvc:interceptors>

 

 

 

package com.snailteam.game.controller;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
public class TrackHandler extends HandlerInterceptorAdapter {
	protected final Log logger = LogFactory.getLog(getClass());
	@Override
	public boolean preHandle(HttpServletRequest request,
			HttpServletResponse response, Object handler) throws Exception {
		Map<String, String> header = new HashMap<String, String>();
		Enumeration<String> hs = request.getHeaderNames();
		while (hs.hasMoreElements()) {
			String h = hs.nextElement();
			header.put(h, request.getHeader(h));
		}
		logger.info(header);
		return super.preHandle(request, response, handler);
	}
}

 

 

log4j

 

# Rules reminder:  
# DEBUG < INFO < WARN < ERROR < FATAL  
  
# Global logging configuration  
log4j.rootLogger=DEBUG,INFO,ERROR,stdout,file  
  
## Console output...  
log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  
log4j.appender.stdout.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} - [ %p ] %l - %m%n  
log4j.appender.stdout.Encoding=UTF-8  
  
#     append to file Info  
log4j.appender.infoFile.Threshold=INFO  
log4j.appender.infoFile=org.apache.log4j.RollingFileAppender  
log4j.appender.infoFile=org.apache.log4j.DailyRollingFileAppender  
log4j.appender.infoFile.Encoding=UTF-8  
log4j.appender.infoFile.File=log/game.log  
log4j.appender.infoFile.DatePattern='_'yyyyMMdd'.log'  
log4j.appender.infoFile.layout=org.apache.log4j.PatternLayout  
log4j.appender.infoFile.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} - [ %p ] %l - %m%n  
  
  
#   append to file error  
log4j.appender.errorFile.Threshold=ERROR  
log4j.appender.errorFile=org.apache.log4j.RollingFileAppender  
log4j.appender.errorFile=org.apache.log4j.DailyRollingFileAppender  
log4j.appender.errorFile=org.apache.log4j.FileAppender  
log4j.appender.errorFile.File=log/game-error.log  
log4j.appender.errorFile.DatePattern='_'yyyyMMdd'.log'  
log4j.appender.errorFile.Append=true  
log4j.appender.errorFile.layout=org.apache.log4j.PatternLayout  
log4j.appender.errorFile.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} - [ %p ] %l - %m%n   

#log4j.logger.freemarker=debug  

log4j.appender.mongodb.layout=org.apache.log4j.PatternLayout
log4j.appender.mongodb.layout.ConversionPattern=%m%n 
log4j.appender.mongodb=org.log4mongo.MongoDbAppender 
log4j.appender.mongodb.databaseName=logdb
log4j.appender.mongodb.Append=true
log4j.appender.mongodb.collectionName=loginfo
log4j.appender.mongodb.hostname=192.168.1.246
log4j.appender.mongodb.port=9007
log4j.appender.mongodb.writeConcern=FSYNCED


  
#  com.snailteam.game.controller.TrackHandler >>> accessFile  
log4j.appender.accessFile=org.apache.log4j.RollingFileAppender  
log4j.appender.accessFile=org.apache.log4j.DailyRollingFileAppender  
log4j.appender.accessFile.Encoding=UTF-8  
log4j.appender.accessFile.File=log/accessFile.log  
log4j.appender.accessFile.DatePattern='_'yyyyMMdd'.log'  
log4j.appender.accessFile.layout=org.apache.log4j.PatternLayout  
log4j.appender.accessFile.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} - [ %p ] %l - %m%n  
log4j.additivity.com.snailteam.game.controller.TrackHandler=false  
log4j.logger.com.snailteam.game.controller.TrackHandler=debug,accessFile  
  
  
log4j.logger.org.springframework=debug  
log4j.logger.com.snailteam.game=info, infoFile,errorFile  
  

 

 

分享到:
评论

相关推荐

    jpivot学习总结.doc

    该标签的主要作用是让 mondrian 执行指定的查询,该标签需要指定一个 JDBC 的 datasource 或单独指定 JDBC 连接的各个属性从而可以让 mondrian 连接到指定的数据库。 它的用法如下: jdbcDriver=...

    ssh(structs,spring,hibernate)框架中的上传下载

    具体的调用是将Web层将response.getOutputStream()传给write(OutputStream os,String fileId)接口,业务层直接将文件数据输出到这个响应流中。具体实现请参见错误!未找到引用源。节下载文件部分。  2、业务层接口...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    第19章 使用log4j进行日志操作 564 19.1 log4j介绍 564 19.1.1 logger组件 564 19.1.2 appender组件 566 19.1.3 layout组件 567 19.2 使用log4j 568 19.3 log4j使用实例 572 19.4 ndc和mdc 585 19.5 小结 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    第19章 使用log4j进行日志操作 564 19.1 log4j介绍 564 19.1.1 logger组件 564 19.1.2 appender组件 566 19.1.3 layout组件 567 19.2 使用log4j 568 19.3 log4j使用实例 572 19.4 ndc和mdc 585 19.5 小结 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    第19章 使用log4j进行日志操作 564 19.1 log4j介绍 564 19.1.1 logger组件 564 19.1.2 appender组件 566 19.1.3 layout组件 567 19.2 使用log4j 568 19.3 log4j使用实例 572 19.4 ndc和mdc 585 19.5 小结 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    第19章 使用log4j进行日志操作 564 19.1 log4j介绍 564 19.1.1 logger组件 564 19.1.2 appender组件 566 19.1.3 layout组件 567 19.2 使用log4j 568 19.3 log4j使用实例 572 19.4 ndc和mdc 585 19.5 小结 ...

    LINGO软件的学习

    目标函数; min=@sum(links: cost*volume); !需求约束; @for(vendors(J): @sum(warehouses(I): volume(I,J))=demand(J)); !产量约束; @for(warehouses(I): @sum(vendors(J): volume(I,J))(I)); !这里是数据; ...

    ibatis 开发指南(pdf)

    在 CLASSPATH 中新建log4j.properties 配置文件,内容如下: log4j.rootLogger=DEBUG, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log...

    整理后java开发全套达内学习笔记(含练习)

    abstract (关键字) 抽象 ['æbstrækt] access vt.访问,存取 ['ækses]'(n.入口,使用权) algorithm n....Annotation [java] 代码注释 [ænәu'... \uxxxx 1到4位16进制数指定Unicode字符输出(xxxx) \\ \ \' ' \" ...

    Maven权威指南 很精典的学习教程,比ANT更好用

    4. Maven Writing Conventions 5. Acknowledgements 1. 介绍 Apache Maven 1.1. Maven... 它是什么? 1.2. 约定优于配置(Convention Over Configuration) 1.3. 一个一般的接口 1.4. 基于Maven插件的全局性...

    网管教程 从入门到精通软件篇.txt

    网管教程 从入门到精通软件篇 ★一。★详细的xp修复控制台命令和用法!!! 放入xp(2000)的光盘,安装时候选R,修复! Windows XP(包括 Windows 2000)的控制台命令是在系统出现一些意外情况下的一种非常有效的...

    数据结构(C++)有关练习题

    (3)分别按英语、数学、程序设计及体育成绩排序并输出到文件。 注:要用面向对象的方法来设计程序,每个班是一个类的实例; 2、用链表建立通讯录。通讯录内容有:姓名、通讯地址、电话号码。 (1)...

    计算机二级公共基础知识

    性质4:具有n个结点的二叉树,其深度至少为[log2n]+1,其中[log2n]表示取log2n的整数部分。 3. 满二叉树与完全二叉树 满二叉树是指这样的一种二叉树:除最后一层外,每一层上的所有结点都有两个子结点。在满二叉树中...

    新版Android开发教程.rar

    的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 • 应用程序框架 支持组件的重用与替换 • Dalvik Dalvik Dalvik Dalvik 虚拟机 专为移动设备优化 • ...

Global site tag (gtag.js) - Google Analytics