扩展Log4j支持JNDI数据源

log4j.properties配置文件:

log4j.rootLogger=INFO,db

#使用log4j扩展支持JNDI数据源
log4j.appender.db=com.qdgswx.log4j.ds.JndiDSAppender
log4j.appender.db.jndiName=wstjndi
log4j.appender.db.BufferSize=1
log4j.appender.db.sql=insert into wx_log (openid,nsrsbh,logtype,classname,methodname,oprtime,loglevel,content) values (‘%X{openid}‘,‘%X{nsrsbh}‘,‘%X{logtype}‘,‘%C‘,‘%M‘,‘%d{yyyy-MM-dd HH:mm:ss}‘,‘%p‘,‘%m‘)
log4j.appender.db.layout=org.apache.log4j.PatternLayout

扩展类JndiDSAppender.java

public class JndiDSAppender extends JDBCAppender {

    protected DataSource ds = null;
    protected String jndiName;

    public void setJndiName(String jndiName) {
        this.jndiName = jndiName;
    }

    protected synchronized void init() {
        if (ds != null) {
            return;
        }
        try {
            InitialContext context = new InitialContext();
            ds = (DataSource) context.lookup(jndiName);
        } catch (NamingException e) {
            this.errorHandler.error(e.getMessage());
        }
    }

     @Override
    protected Connection getConnection() throws SQLException {
        while(ds==null){
            init();
        }

        Connection conn = ds.getConnection();
        conn.setAutoCommit(true);

        return conn;
    }

    @Override
    protected void closeConnection(Connection conn) {
        try {
            if(conn!=null&&!conn.isClosed()) {
                conn.close();
            }
        } catch (SQLException e) {
            this.errorHandler.error(e.getMessage());
        }
    }
}
时间: 2024-10-12 22:01:33

扩展Log4j支持JNDI数据源的相关文章

扩展GridView实现的一个自定义无刷新分页,排序,支持多种数据源的控件TwfGridView

最近项目View层越来越趋向于无刷新化,特别是数据展示方面,还要对Linq有很好的支持.在WebFrom模式的开发中,GridView是一个功能很强大,很常用的控件,但是他也不是完美的,没有自带的无刷新和排序(有人说UpdatePanel或第三方插件就可以实现无刷新,但是呵呵...那是重量级的无刷新实现,相信不少朋友和我一样讨厌UpdatePanel,引入一大堆很长的js库且不说,用起来感觉不到一点无刷新带来的快速),也不支持部分数据绑定分页(有人说部分数据绑定也可以用aspNetPager等第

扩展Tomcat支持OSGi应用服务

转自 扩展Tomcat支持OSGi应用服务(1) 扩展Tomcat支持OSGi应用服务(2) 扩展Tomcat支持OSGi应用服务(3) 1.摘要 OSGi的动态服务,包版本管理,安全设施,热插拔等特性吸引了越来越多开发人员的关注,由于OSGi不同于以往的设计理念,在企业级应用中一直没有很大的发挥.不过通过大家的不断努力,OSGi已在企业级服务平台中有所集成.本文站在另一个角度尝试Tomcat服务器下的OSGi服务集成,为web应用提供动态服务,为企业级开发提供参考. 本文需要读者了解以下内容:

5 -- Hibernate的基本用法 --4 5 JNDI数据源的连接属性

如果无须Hibernate自己管理数据源,而是直接访问容器管理数据源,Hibernate可使用JNDI(Java Naming Directory Interface,Java命名目录接口)数据源的相关配置. 连接JNDI数据源的主要配置属性: ⊙ hiberante.connection.datasource : 指定JNDI数据源的名字. ⊙ hibernate.jndi.url : 指定JNDI提供者的URL,该属性是可选的.如果JNDI与Hibernate持久化访问的代码处于同一个应用中

JNDI学习总结(三)——Tomcat下使用Druid配置JNDI数据源

com.alibaba.druid.pool.DruidDataSourceFactory实现了javax.naming.spi.ObjectFactory,可以作为JNDI数据源来配置. 一.下载Druid的jar包 下载地址:http://mvnrepository.com/artifact/com.alibaba/druid/1.0.9,如下图所示: druid.jar依赖log4j的jar包,所以还需要下载log4j的jar包. log4j的下载地址如下:http://mvnreposi

jetty使用jndi数据源

之前将项目正常的数据源统一切换成jndi访问的形式(是将c3p0以mbean形式安装到jboss做的数据连接池), 本地测试用的jetty服务器,为了统一数据库访问部分,我也查看文档找到了jetty提供jndi数据源的配置方式,简单如下: 1. 在项目路径下新建jetty.xml, jetty默认的配置文件,在server添加如下内容 <Configure id="Server" class="org.eclipse.jetty.server.Server"&

Quick BI 支持多种数据源进行多维分析

一.摘要 随着互联网的高速发展,数据量爆发式增长的同时,数据的存储形式也开始呈现出多样性,有结构化存储,如 Mysql, Oracle, SQLServer 等,半结构化甚至非结构化存储,如HBase,OSS 等.那么从事数据分析的人员就面临着从多种多样的数据存储形式中提取数据而后进行多维分析,这将是一件非常具有挑战的事情.而Quick BI 作为新一代智能BI服务平台,恰好解决了这一难题,不仅支持多种结构化数据源的多维分析,也支持本地文件上传后的查询分析,同时还支持部分非结构化数据源的OLAP

Tomcat下使用c3p0配置jndi数据源

下载c3p0包: 下载地址:https://sourceforge.net/projects/c3p0/files/?source=navbar 解压后得到包:c3p0-0.9.2.jar,mchange-commons-java-0.2.11.jar 下载mysql包: 下载地址:http://download.csdn.net/download/u010802461/9579306 解压后得到包:mysql-connector-java-5.1.39-bin.jar(笔者这里没有是因为我将包

Spring JDBCTemplate使用JNDI数据源

xml配置: 1 <bean id="dataSource" 2 class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 3 <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" /> 4 <property name=&qu

JNDI学习总结(二)——Tomcat下使用C3P0配置JNDI数据源

一.C3P0下载 C3P0下载地址:http://sourceforge.net/projects/c3p0/files/?source=navbar 下载完成之后得到一个压缩包. 二.使用C3P0配置JNDI数据源 Tomcat6.x中配置JNDI数据源时默认使用的是Tomcat6.x自带的DBCP连接池,Tomcat6.x使用DBCP连接池配置JNDI数据源如下: 1 <Resource 2 name="oracleDataSource" 3 auth="Conta