`
123629996
  • 浏览: 295214 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

log4j 记录日志

 
阅读更多

项目中有用到log4j 记录日志,在此记录下,废话不说,上代码。

log4j 与spring集成,在web.xml中配置如下:

 

<context-param>
		<param-name>webAppRootKey</param-name>
		<param-value>ahepc.root</param-value>
	</context-param>
	<context-param>
		<param-name>log4jConfigLocation</param-name>
		<param-value>classpath:log4j.properties</param-value>
	</context-param>
	<!-- log4j每隔60秒扫描 一下配置文件的变化 -->
	<context-param>
		<param-name>log4jRefreshInterval</param-name>
		<param-value>60000</param-value>
	</context-param>
<listener>
		<listener-class>org.springframework.web.util.Log4jConfigListener
		</listener-class>
	</listener>

 配置文件 log4j.properties

 

 

#
# Log4J Settings for log4j 1.2.x (via jakarta-commons-logging)
#
# The five logging levels used by Log are (in order):
#
#   1. DEBUG (the least serious)
#   2. INFO
#   3. WARN
#   4. ERROR
#   5. FATAL (the most serious)


# Set root logger level to WARN and append to stdout
log4j.rootLogger=DEBUG,CONSOLE,A1

#log4j.rootLogger=DEBUG,CONSOLE
#继承
log4j.addivity.org.apache=false
#输出到控制台
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=DEBUG
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d %-5p [%c{1}] %m%n
 
#log4j.logger.org.apache=INFO

log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG,CONSOLE
log4j.logger.java.sql.ResultSet =DEBUG
#按文件大小生成
log4j.appender.A1=org.apache.log4j.RollingFileAppender
#log4j.appender.logfile=org.apache.log4j.FileAppender 
#log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender # 按日期生成配合DatePattern
log4j.appender.A1.MaxFileSize=20MB
log4j.appender.A1.MaxBackupIndex=20
log4j.appender.A1.File=${ahepc.root}/WEB-INF/logs/ahepc.log
#log4j.appender.A1.DatePattern=.yyyy-MM-dd
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d %-5p [%c{1}] %m%n





log4j.logger.com.sgcc.ahepc=INFO,DATABASE
#数据库配置
#log4j.appender.DATABASE.Threshold=INFO
log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.DATABASE.BufferSize=1
#log4j.appender.DATABASE.URL=jdbc:oracle:thin:@localhost:1521:orcl
log4j.appender.DATABASE.URL=jdbc:oracle:thin:@192.168.1.99:1521:orcl2
log4j.appender.DATABASE.driver=oracle.jdbc.driver.OracleDriver
log4j.appender.DATABASE.user=PMP
log4j.appender.DATABASE.password=PMP_123*
log4j.appender.DATABASE.sql=insert into PMP_COMMON_LOGGING (log_id,user_id,remote_addr,access_url,cls,method,log_level,log_msg,created_dt) values (sys_guid(),'%X{user_id}','%X{remote_addr}','%X{access_url}','%C','%M','%p','%m',sysdate)
log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout



 配置文件说明下:log4j可以生成多种格式的log日志,这里配置了最常用的三种,分别是控制台,文件和数据库,

 

log4j 有5中输出级别。

文件的输出,常有安日期时间每天生成,也可以安装文件大小生成,还可以定义按文件大小生成时,可以生成多少个备份文件,很少牛逼。

log4j.logger.com.sgcc.ahepc=INFO,DATABASE 

这句指定 只有在com.sgcc.ahepc包目录下才存入数据库,并且级别是info,只有这个包结构下的类书写了info级别的信息能存入数据

 

private static Logger logger = Logger.getLogger(LoginController.class);

MDC.put("user_id", user.getObj_id());
MDC.put("remote_addr", request.getRemoteHost());
MDC.put("access_url", request.getRequestURL());
logger.info("登录成功");

 上面的代码不完全,就是在类的头部声明log对象,在需要写log的地方输出对应级别的信息。

 

需要说明的是MDC类,这个类是log4j提供的类,和map的应用基本一致。存入键值对。在sql语句中可以用‘%X{user_id}%’获得。这里就用这样的方式获得登陆人登陆的时间地点等一系列信息

 

分享到:
评论

相关推荐

    log4j使用与java中log4j记录日志如何写入数据库

    Log4j是Apache组织提供的一款开源的日志记录工具,它功能强大、灵活易用。本文将详细介绍如何在Java中使用Log4j来记录日志,并将其写入数据库。 首先,我们需要了解Log4j的基本结构。一个简单的Log4j项目通常包含...

    tomcat8更换log4j记录日志

    压缩包中的"**lib**"目录可能包含Log4j的必要依赖库,比如`log4j.jar`,这是运行Log4j的日志记录功能所必需的。确保这些库文件被添加到Tomcat的`lib`目录,使得所有部署的应用都能访问Log4j。 综上所述,通过正确...

    使用log4j 记录日志到数据库

    这篇博客“使用log4j记录日志到数据库”将介绍如何配置和使用Log4j,以便将日志信息存储到数据库中,而非传统的文本文件。数据库存储的日志便于进行结构化查询,有助于进行长期的数据分析和管理。 首先,理解Log4j...

    spring简单注解+log4j记录日志

    综上所述,"spring简单注解+log4j记录日志"这个主题涵盖了Spring框架中的注解使用、Log4j日志系统以及AOP的应用。通过学习这些内容,初学者可以更好地理解和实践Spring框架,同时提高代码的可维护性和调试效率。在...

    Log4j记录日志DEMO

    **Log4j记录日志DEMO** 在Java开发中,日志记录是不可或缺的一部分,它帮助开发者追踪程序运行状态、定位错误和调试代码。Log4j是Apache组织提供的一款广泛使用的开源日志框架,适用于各种Java应用程序。Log4j以其...

    在Eclipse中应用Log4J记录日志

    下面是一个使用Log4J记录日志的例子: ```java import org.apache.log4j.Logger; public class Example { private static final Logger logger = Logger.getLogger(Example.class); public void someMethod() {...

    示范如何在android工程中使用log4j记录日志

    5. **定制日志级别和输出**:根据需要,可以通过修改log4j2.xml配置文件来调整日志级别,或者添加其他Appender,比如文件Appender,将日志记录到特定文件中。 6. **性能考虑**:在生产环境中,通常会将日志级别设置...

    log4j2.xml记录日志到到数据库

    Log4j2是一款广泛使用的日志框架,它提供了灵活且高效的日志记录功能。本示例将详细介绍如何配置并使用Log4j2将日志信息记录到MySQL数据库中。 首先,我们要理解Log4j2的核心概念。Log4j2主要包括以下几个组件: 1...

    AndroidStudio 使用log4j记录日志,按照大小定期滚动日志Demo

    本文将详细介绍如何在Android Studio中使用log4j库来记录日志,并实现按照日志文件大小自动滚动的功能,以及如何进行日志内容的格式化输出。 首先,log4j是一款广泛使用的日志记录框架,它提供了灵活的日志配置和...

    Log4j日志等级,具体说明了log4j中的日志记录等级,对于自己写日志有很大帮助。

    Log4j是Apache的一个开源项目,用于Java应用程序的日志记录。它提供了一种高度灵活且功能强大的日志解决方案,允许开发者和系统管理员自定义日志级别、格式和输出目的地,从而有效地管理和监控应用程序的运行状况。 ...

    log4j记录Debug日志

    在使用Log4j记录Debug日志时,确保项目中引入了相应的Log4j库,并正确配置了`log4j.properties`或`log4j.xml`文件,设置DEBUG级别,然后在代码中使用Logger对象进行日志记录。例如: ```java import org.apache.log4...

    log4j日志的基本使用

    Log4j的核心组件包括:Logger(日志记录器)、Appender(输出端)、Layout(日志格式化器)。 1. **Logger(日志记录器)** - **功能**:用于控制日志的输出级别和是否输出。 - **根日志记录器**:`rootLogger`是...

    android log4j记录日志到缓存或SD卡

    Log4j是一个广泛应用于Java环境的日志记录框架,它提供了灵活的日志记录配置,使得在Android中记录日志变得更加方便。本文将深入探讨如何在Android环境中利用Log4j将日志记录到缓存或者SD卡,以便于后期分析和错误...

    tomcat下的log4j日志配置

    ### Tomcat 下的 Log4j 日志配置详解 在日常的 Web 开发中,日志记录对于调试问题、监控系统状态以及后期维护来说至关重要。在使用 Apache Tomcat 作为服务器时,合理配置日志框架(如 Log4j)能够极大地提高开发...

    如何使用log4j记录日志-.docx

    Log4j是一个广泛使用的日志记录框架,它提供了灵活且高效的日志处理机制。本文将详细介绍如何使用Log4j来记录日志。 首先,Log4j的核心配置文件通常是`log4j.properties`或`log4j.xml`,在这里我们关注的是基于属性...

    动态设置log4j的日志级别

    Log4j是Apache组织提供的一款广泛使用的日志框架,它允许开发者灵活地控制日志信息的输出。本文将详细讲解如何动态设置Log4j的日志级别,以满足不同场景下的需求。 首先,我们要理解日志级别的概念。Log4j提供了多...

    log4j自定义日志文件名及日志输出格式

    Log4j是Apache提供的一款广泛使用的日志框架,它提供了丰富的配置选项,允许开发者灵活地控制日志输出。当我们面对特定项目需求,比如需要自定义日志文件名和日志输出格式时,Log4j同样提供了相应的解决方案。 首先...

    SSM整合中的Log4j日志的配置详情

    Log4j 是一个功能强大且广泛使用的日志记录工具,特别是在 SSM(Spring、Spring MVC、Mybatis)整合项目中,合理地配置 Log4j 对项目的日志记录和输出至关重要。本文将详细介绍 SSM 整合中的 Log4j 配置详情,帮助...

    AOP+log4j记录日志

    日志处理应该是软件系统中单独的一大部分,开发人员在进行系统开发时,不应该再来考虑日志处理。AOP能够做到这一点,让开发人员更加专注于系统的业务编码,而无需顾虑日志问题(这一点大家可以联系声明式事务处理的...

    Log4J日记功能

    Log4J是一个广泛使用的Java日志记录框架,它为开发者提供了强大的日志记录功能,能够帮助追踪应用程序的运行状态,捕获和记录错误,以及在问题发生时快速定位问题源头。本文将详细介绍Log4J的基本概念、日志组件、...

Global site tag (gtag.js) - Google Analytics