`

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  
  

 

 

分享到:
评论

相关推荐

    log4j-1.2.17的jar包以及依赖包,还有一份log4j的配置文件,输出到控制台和文件夹两种配置

    2. **Appenders**: Appender是Log4j的输出端口,用于指定日志信息的输出目标。在`log4j.properties`中,可能会定义多个Appender,比如将日志输出到控制台(ConsoleAppender)和文件(FileAppender)。 3. **Layouts...

    log4j.1.2.17

    - **Appender(输出器)**:负责将日志信息发送到指定的目标,如控制台、文件、数据库等。 - **Layout(布局器)**:决定日志信息的输出格式,如简单的文本、XML、HTML等。 - **Filter(过滤器)**:允许根据特定...

    slf4j与log4j整合包

    Log4j提供了灵活的日志配置,可以通过XML、properties文件或者代码动态改变日志级别,控制输出格式,以及指定日志输出的目的地(控制台、文件、数据库等)。此外,Log4j还支持自定义日志布局模式,可以方便地定制...

    Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等

    Logger负责生成日志消息,Appender负责将这些消息输出到指定的目标,如控制台、文件、数据库等,而Layout则定义了日志消息的格式。 配置Log4j通常有两种方式,一种是使用XML格式的配置文件(log4j.xml),另一种是...

    log4j使用详解log4j使用详解

    - `log4j.appender.appender1=org.apache.log4j.ConsoleAppender`:设置 appender1 为 ConsoleAppender 类型,即日志信息将被输出到控制台。 - `log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout`:...

    log4j和log4j .jar包

    Log4j的主要目标是简化日志记录过程,使其能够适应各种复杂的运行环境,并且支持不同的日志级别和输出格式,便于调试、监控和分析应用程序的行为。 **Log4j的组件** 1. **Logger**: 是日志记录的基本单元,通过...

    log4j源码 log4j源码

    3. **Appender**:输出器负责将日志信息发送到指定的目标,如控制台、文件、电子邮件、网络等。不同的Appender实现了不同的输出策略,使得日志可以灵活地被存储和查看。 4. **Layout**:布局定义了日志信息的格式,...

    springboot+mybatis+log4j2

    在项目中,我们需要修改Spring Boot的默认配置,指定使用Log4j2,并在项目的配置文件中(如`log4j2.xml`或`log4j2.json`)定义日志级别、输出格式和目标位置。 在项目中,"springBootMybatis"这个压缩包文件可能...

    log4j参考手册

    类图展示了Log4j的主要类和接口及其关系,帮助理解其内部工作原理和设计模式。 **2.3 日志级别** 日志级别定义了日志信息的重要性,从DEBUG(调试信息)到FATAL(致命错误)。开发者可以通过设置级别来过滤不必要的...

    Log4j2 demo (log4j2 version 2.1)

    Log4j2在性能上做了大量优化,例如使用了Log4j2 API而不是SLF4J,避免了接口调用的开销。此外,它还支持基于日志等级的过滤,减少了不必要的日志计算。 **总结** 在提供的"Log4j2 demo (log4j2 version 2.1)...

    log4j及配置文件

    这个库包含了Log4j的所有实现类和接口,使我们能够方便地调用其API进行日志记录。例如,我们可以通过以下代码创建一个名为"myLogger"的日志器: ```java import org.apache.log4j.Logger; public class MyClass { ...

    log4j-1.2.17含源码

    源码分析方面,我们可以关注几个关键类:`org.apache.log4j.Logger`是日志记录的主要接口,`org.apache.log4j.Category`(Logger的实现)负责实际的日志记录,`org.apache.log4j.Appender`接口定义了日志输出的基本...

    slf4j与Log4j集成

    SLF4J是一个日志API的抽象层,它的设计目标是为各种日志框架提供一个统一的接口,如Logback、Log4j等。这样,开发者可以在项目开发阶段使用SLF4J,而在部署时根据实际需求选择具体的日志实现。 SLF4J的核心在于提供...

    log4j-1.2.15-apidocs.rar

    Log4j是一款开源的日志记录框架,最初由Apache软件基金会开发,其设计目标是提供一个灵活且可扩展的日志系统,使开发者能够方便地控制日志信息的输出级别,以及输出格式和目的地。Log4j 1.2.15是1.x系列的一个稳定...

    log4j学习

    2. **配置日志实现**:在`commons-logging.properties`文件中,指定日志实现为Log4j。例如: ``` org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JCategoryLog ``` 3. **配置Log4j**:在`...

    log4j-1.2.16.jar与slf4j-api-1.6.1.jar加个转换包和log4j.properties示例

    1. 将`log4j-1.2.16.jar`和`slf4j-api-1.6.1.jar`添加到项目的类路径中。 2. 添加`slf4j-log4j12.jar`作为转换包,使SLF4J能够使用Log4j实现。 3. 创建或提供一个`log4j.properties`文件,并将其配置为项目所需的...

    log4j按照不同appender生成日志例子

    通过设置`log4j.logger`属性,我们可以指定这些接口的日志输出应该被哪个Appender捕获。例如,所有在`com.example.api.A`包及其子包下的类产生的日志都会被写入A.log文件。 文件名称列表中的"test"可能是一个测试...

    log4j所需jar包

    1. **核心库**: "apache-log4j-1.2.16.jar" 是Log4j的核心库,它包含了日志记录的主要类和接口,如`Logger`,`Appender`,`Layout`等。`Logger`是记录日志的对象,`Appender`负责将日志信息发送到特定的目标(如...

    log4j学习源码教程

    - **Logger**: 日志记录器,是log4j的核心接口,用于生成不同级别的日志事件。 - **Level**: 日志级别,包括DEBUG、INFO、WARN、ERROR、FATAL等,用于控制日志信息的输出。 - **Appender**: 输出端,负责将日志信息...

    apache-log4j-2.3 jar包

    在使用Apache Log4j 2.3时,开发人员应确保正确配置日志框架,包括设置合适的日志级别(如DEBUG、INFO、WARN、ERROR、FATAL)和指定日志输出的位置。此外,考虑到性能和可维护性,建议遵循最佳实践,如避免过多的...

Global site tag (gtag.js) - Google Analytics