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=
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());
}
}
}

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

  1. 代码中jndi数据源的支持

    项目中基本都使用Spring框架,支持jndi还是很简单的,只需在spring配置文件中加入 <!-- 使用jndi配置数据源 --> <bean id="dataSour ...

  2. 阶段3 1.Mybatis_10.JNDI扩展知识_3 补充-测试JNDI数据源的使用以及使用细节

    在webapp文件夹下新建目录META-INF 把context.xml文件复制过去. 拿资料里面的SqlMapConfig.xml文件 全部复制到项目的SqlMapConfig.xml里面来. ja ...

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

    com.alibaba.druid.pool.DruidDataSourceFactory实现了javax.naming.spi.ObjectFactory,可以作为JNDI数据源来配置. 一.下载D ...

  4. Tomcat下使用Druid配置JNDI数据源

    com.alibaba.druid.pool.DruidDataSourceFactory实现了javax.naming.spi.ObjectFactory,可以作为JNDI数据源来配置. 一.下载D ...

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

    如果无须Hibernate自己管理数据源,而是直接访问容器管理数据源,Hibernate可使用JNDI(Java Naming Directory Interface,Java命名目录接口)数据源的相 ...

  6. JNDI数据源

    孤傲苍狼 只为成功找方法,不为失败找借口! JNDI学习总结(一)——JNDI数据源的配置 一.数据源的由来 在Java开发中,使用JDBC操作数据库的四个步骤如下:   ①加载数据库驱动程序(Cla ...

  7. jetty使用jndi数据源

    之前将项目正常的数据源统一切换成jndi访问的形式(是将c3p0以mbean形式安装到jboss做的数据连接池), 本地测试用的jetty服务器,为了统一数据库访问部分,我也查看文档找到了jetty提 ...

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

    com.alibaba.druid.pool.DruidDataSourceFactory实现了javax.naming.spi.ObjectFactory,可以作为JNDI数据源来配置. 一.下载D ...

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

    一.摘要 随着互联网的高速发展,数据量爆发式增长的同时,数据的存储形式也开始呈现出多样性,有结构化存储,如 Mysql, Oracle, SQLServer 等,半结构化甚至非结构化存储,如HBase ...

随机推荐

  1. java日期int和String互转

    /** * 时间unix转换 * @param timestampString * @return */ public static String TimeStampDate(String times ...

  2. 【转】【教程】office 2013 & visio 2013的激活

    原文网址:http://zhan.renren.com/sola86?gid=3602888498037097351&checked=true 1.下载安装文件 office和visio都有两 ...

  3. Codeforces Round #292 (Div. 1) - B. Drazil and Tiles

    B. Drazil and Tiles   Drazil created a following problem about putting 1 × 2 tiles into an n × m gri ...

  4. C#系列教程——switch定义及使用

    代码如下: using System; class Switch_Test { static void Main() { Console.WriteLine("box sizes: 1=Sm ...

  5. 2017年开年的第一次比较大的安全事件: MongoDB “赎金事件”,如何看待互联网安全问题

    今天上午(2017年1月7日),我的微信群中同时出现了两个MongoDB被黑掉要赎金的情况,于是在调查过程中,发现了这个事件.这个事件应该是2017年开年的第一次比较大的安全事件吧,发现国内居然没有什 ...

  6. zabbix流量汇聚

    "服务器流量汇总"领导提需求,要把几个数据中心的数据汇总起来,于是就google了一下"zabbix流量汇总" 按照其中一篇博客做了出来,博客地址如下. htt ...

  7. Xcode7真机测试

    根据这个网址上的步骤能够完成真机测试,我已经试过了,还不错 http://www.bubuko.com/infodetail-1061938.html

  8. X-FORWARDED-FOR

    外界流传的JAVA/PHP服务器端获取客户端IP都是这么取的: 伪代码: 1)ip = request.getHeader("X-FORWARDED-FOR")     可伪造,参 ...

  9. Android之旅十八 百度地图环境搭建

    在android中使用百度地图,我们能够先看看百度地图对应的SDK信息:http://developer.baidu.com/map/index.php? title=androidsdk,它里面基本 ...

  10. zend_db连接mysql(附完整代码)(转)

    在看这些之前请确保你正确加载了PDO扩展. 作法是编辑php.ini手动增加下面这两行(前面要没有分号;):extension=php_pdo.dllextension=php_pdo_mysql.d ...