`

log4j 重写JDBCAppender时使用spring管理的bean

阅读更多

   在使用log4j往数据库里写日志时 有以下两种方式可实现:

                   1. 在自己重写的MyJDBCAppender中 手动调用applicationContext.xml时 在手动获取datasource  (bean)

                  

ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");        
	 dataSource = (DataSource) context.getBean("dataSource");

                 

          

            2. 在自己重写的MyJDBCAppender中通过以下方式调用bean

         ServletContext  sc=(ServletContext)MyServletContextListener.local.get();
          ApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(sc);
	     dataSource = (DataSource) context.getBean("dataSource");

     以上方式需要获取到servletContext。通过在web.xml添加一个监听器,在监听器中获取servletContext并存至本地:

public class MyServletContextListener implements ServletContextListener{
	
	public static ThreadLocal local=new ThreadLocal();

	private ServletContext context=null;


	public void contextDestroyed(ServletContextEvent event) {

		this.context=null;

	}

	//初始化

	public void contextInitialized(ServletContextEvent event) {

		this.context=event.getServletContext();
		local.set(context);//放到线程池

	}

}

 web.xml中配置

<listener>
 	<listener-class>com.xxxx.www.util.MyServletContextListener</listener-class>
 </listener>

 

在MyJDBCAppender 中调用

    ServletContext  sc=(ServletContext)MyServletContextListener.local.get();

 

ok,第二种方式顺利拿到spring中的各种bean.

分享到:
评论

相关推荐

    log4j日志写入数据库实例

    本文将深入探讨如何使用Log4j将日志信息写入数据库,以实现更高级别的日志管理和分析能力。 首先,Log4j是一个开源的日志记录工具,它允许程序员根据不同的级别(如DEBUG、INFO、WARN、ERROR和FATAL)记录应用程序...

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

    在Java开发中,日志记录是一项非常重要的任务,它能够帮助开发者追踪程序运行时的状态,定位错误和异常,便于后期的调试...总之,理解和掌握Log4j的使用,能够极大地方便开发者进行日志管理和故障排查,提升开发效率。

    log4j日志驱动包

    log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/test log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver log4j.appender.DATABASE....

    log4j与log4j.properties的配置.doc

    这些级别可以自定义,但 Log4j 建议只使用四个级别:ERROR、WARN、INFO 和 DEBUG。 四、Appenders Appenders 是 Log4j 的输出目的地,用于将日志信息输出到不同的目的地。Log4j 提供了多种 Appenders,包括: 1. ...

    log4j使用笔记

    ### log4j 使用详解 #### 一、log4j 简介与作用 log4j 是一个由 Apache 提供的开源日志组件,专为 Java 应用程序设计。它能够帮助开发者轻松记录应用程序运行时的信息,这些信息通常被称为“日志”。通过 log4j,...

    log4j添加日志到数据库和文件中

    log4j.appender.DB=org.apache.log4j.jdbc.JDBCAppender log4j.appender.DB.URL=jdbc:mysql://localhost:3306/mydatabase log4j.appender.DB.Driver=com.mysql.jdbc.Driver log4j.appender.DB.User=myuser log4...

    Log4j写入数据库详解

    log4j.appender.db=org.apache.log4j.jdbc.JDBCAppender log4j.appender.db.URL=jdbc:mssql://localhost:1433/WdzLog log4j.appender.db.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver log4j.appender.db....

    深入学习log4J

    《深入学习log4J》是一本专注于Java日志框架Log4J的专业书籍,旨在帮助开发者深入理解并熟练运用Log4J进行系统日志管理和分析。Log4J是Apache组织开发的一个开源日志记录工具,广泛应用于Java应用程序中,提供灵活的...

    Log4j 日志信息存储到数据库中

    ### Log4j 日志信息存储到数据库中的配置与使用 #### 概述 在软件开发过程中,日志记录是至关重要的环节之一。它不仅能够帮助开发者追踪程序运行时的状态,还可以在系统出现故障时提供诊断信息。Apache Log4j 是一...

    log4j写入数据库配置

    Log4j是一个广泛使用的日志记录框架,它允许开发者在应用程序中轻松地记录各种日志信息。对于大型系统和分布式环境来说,将日志写入数据库可以提供更强大的查询、分析和故障排查能力。本文将详细阐述如何配置Log4j以...

    使用log4j 记录日志到数据库

    总的来说,“使用log4j记录日志到数据库”涉及Java日志管理、数据库操作和系统监控等多个方面。理解并熟练运用Log4j的配置和定制,能够帮助开发者更有效地管理和分析系统的运行状况,提升问题定位和解决效率。

    log4j 配置mysql 数据库 demo

    在IT行业中,日志管理是系统监控和故障排查的重要环节,而Log4j作为Java领域广泛使用的日志框架,为开发者提供了强大的日志记录功能。本篇将详细介绍如何配置Log4j来将日志信息存储到MySQL数据库中,以实现日志的...

    配置log4j配置数据库连接池(以dbcp连接池为例),并将log信息存储在数据库中(以mysql为例)

    当你的Java应用运行时,Log4j会通过DBCP连接池连接到MySQL数据库,并将日志信息存储到`log`表中。这样,你可以方便地对日志进行集中管理和分析,有助于系统维护和故障排查。 这个过程涉及的知识点包括: 1. Log4j的...

    log4j常用Appender配置

    Log4j Appender 配置详解 Log4j 是一个 Java 语言下的日志记录工具库,它提供了灵活的日志记录机制,可以将日志信息写入到控制台、文件、数据库等多种目标中。在 Log4j 中,Appender 是一种输出目标,它负责将日志...

    Log4j手册

    无论是大型企业级应用还是小型项目,Log4j都能提供合适的日志管理方案,帮助开发者轻松地捕获、管理和分析应用程序的运行状态。 #### 参考文档与配置文件 深入了解Log4j的最佳方式之一是查阅官方文档和社区资源。...

    log4j输出日志到数据库表中

    **标题解析:** "log4j输出日志到数据库表中" 指的是使用Log4j这个流行的Java日志框架,将日志记录存储在数据库的特定表中,而不是默认的文本文件或控制台。这通常是出于日志管理、分析和长期存储的需求。 **描述...

    log4j 数据库,邮件,html 等配置

    &lt;appender name="DBAppender" class="org.apache.log4j.jdbc.JDBCAppender"&gt; &lt;param name="URL" value="jdbc:mysql://localhost:3306/logdb" /&gt; &lt;layout class="org.apache.log4j.PatternLayout"&gt; ``` ...

    如何借助log4j把日志写入数据库中

    要将日志写入数据库,我们需要配置一个使用数据库Appender的Log4j配置文件。以下是一个基本的配置示例: ```xml &lt;appender name="DB" class="org.apache.log4j.jdbc.JDBCAppender"&gt; ...

    log4jToJDBCAppender.zip

    本工程用于研究log4j日志输出目的地org.apache.log4j.jdbc.JDBCAppender的使用方法 本工程编码方式:UTF-8 本工程开发工具:MyEclipse 本工程需要执行的SQL语句: CREATE DATABASE `test`; CREATE TABLE `...

Global site tag (gtag.js) - Google Analytics