`

加载log4j 加载器

 
阅读更多

ehanmqi@CN00202245 /C/Ericsson/maworkspace_15/Hello/lib

$ pwd

/C/Ericsson/maworkspace_15/Hello/lib

 

ehanmqi@CN00202245 /C/Ericsson/maworkspace_15/Hello/lib

$ ls -l

total 265

-rw-r--r--    1 ehanmqi  Administ   489884 Jun 16 15:27 log4j-1.2.17.jar

-rw-r--r--    1 ehanmqi  Administ    41071 Jun 16 15:24 slf4j-api-1.7.21.jar

-rw-r--r--    1 ehanmqi  Administ     9988 Jun 16 15:24 slf4j-log4j12-1.7.21.jar

 

import java.io.File;

import java.net.URL;

import java.net.URLClassLoader;

import java.util.Enumeration;

import java.util.jar.JarEntry;

import java.util.jar.JarFile;

 

import org.slf4j.Logger;

 

 

 

 

public class TestClassLoader2 {

private static Logger logger;

/**

* @param args

*/

public static void main(String[] args) {

 

try {

 

System.out.println(TestClassLoader2.class.getClassLoader());

//URL   url = new File("C:/Users/ehanmqi/.m2/repository/org/slf4j/slf4j-log4j12/1.7.5/slf4j-log4j12-1.7.5.jar").toURI().toURL();

File file = new File("C:/Ericsson/maworkspace_15/Hello/lib");

URLClassLoader loader = loadJar(file.listFiles());

 

Class c = loader.loadClass("org.slf4j.LoggerFactory");

//c.getMethod("getLogger", Class.class).invoke(null, TestClassLoader2.class);

logger = (Logger) c.getMethod("getLogger", Class.class).invoke(null, TestClassLoader2.class);

logger.debug("sdfsf");

 

}catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

 

}

 

public static URLClassLoader loadJar(File[] fileArray) throws Exception{

URL[] urlarray = new URL[fileArray.length];

int i=0;

for(File f : fileArray){

URL   url =  f.toURI().toURL();

urlarray[i]=url;

i++;

}

 

 

URLClassLoader   loader = new URLClassLoader(urlarray, TestClassLoader2.class.getClassLoader());

//loader.loadClass("org.apache.log4j.net.JMSSink");

for(File f : fileArray){

JarFile jarfile = new JarFile(f);

Enumeration<JarEntry> jarEntry = jarfile.entries();

while(jarEntry.hasMoreElements()){

JarEntry  je = jarEntry.nextElement();

 

if(je.getName().endsWith(".class")){

//System.out.println(je.getName());

String classpath = je.getName().replaceAll("/", ".").replaceAll(".class", "");

if(!classpath.equals("org.apache.log4j.net.JMSSink")){

continue;

}else if(!classpath.equals("javax/mail/Authenticator".replace("/", "."))){

continue;

}

loader.loadClass(classpath);

 

}

}

 

}

 

return loader;

 

}

 

}

 

 

分享到:
评论

相关推荐

    Log4J的配置文件

    Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。Log4j 框架是用 Java 语言编写的标准日志记录框架。通过配置,可以创建出Log4J的...

    log4j-1.2.16.zip

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

    类加载器(java)

    当JVM(Java虚拟机)启动时,会形成由三个类加载器组成的初始类加载器层次结构,理解类加载器:J2EE 环境下的 log4j.files

    Java日志体系全解析:架构师必掌握的关键技术和最佳实践

    但JCL本身存在性能问题和类加载器问题。 为解决这些问题,SLF4J(Simple Logging Facade for Java)应运而生。它不仅提供了一个更为简洁高效的日志门面,还通过各种适配器支持了众多日志实现,如log4j、logback等。...

    springmvcdemo

    下载之后您只需要1.根据实体类创建数据库 2.jdbc.property填写正确 3.项目加载 运行 这里你将学习到: 前台: 公共类库 Juqery 公共组件 表格:jqueryeasyui datagrid ...11 利用log4j输出程序日志 12 无刷新翻页

    mep4j:数学表达式解析器4 Java-开源

    数学表达式解析器4 Java MEP4J是用于Java的高性能数学表达式字符串解析器(J2SE&gt; = 5)。 将其与同类库的性能进行比较,并让我知道您的经验。 该库管理5个运算符(+,-,/,%,*)以及以下功能:-“ abs”-“ cos”...

    MyEclipse_9创建SSH2开发环境必须的独立包

    struts2 相关包-------------------------------------------------- xwork-2.0.5.jar webwork的核心库 ognl-2.6.11.jar OGNL...slf4j-log4j12-1.5.0.jar slf4j log4j支持包 log4j-1.2.15.jar slf4j-api-1.5.0.jar

    apache-tomcat-5.5.17-src

    │ ch09.rar 类加载器(实例演示) │ ch12.rar FORM验证登录文件,BASIC验证配置文件,Realm配置代码 │ ch13.rar Tomcat阀的使用(实例演示) │ ch14.rar JDBC资源(实例演示) │ ch17.rar 将Tomcat...

    springmvc+hibernate 日志管理工具

    功能包括:功能日志记录(访问、参数、异常、返回结果集)、数据日志记录、日志查询... 日志记录:以JSON格式输出日志,通过log4j配置日志文件输出方式。 日志查询:提供servlet加载日志文件,前台JSON处理查询对照。

    Apache安装及JBOSS部署说明文档.rar

    2.2.8日志配置,配置log4j.xml 18 2.2.9配置contentType及charset,TOMCAT5.0下JSP统一配置 19 2.3 JVM最小、最大内存的设定 21 2.4 OS字符集问题 21 2.5 JBOSS服务的启动、停止 21 3.附apache https 服务器的...

    spring hibernate 日志管理插件

    日志记录:以JSON格式输出日志,通过log4j配置日志文件输出方式。 日志查询:提供servlet加载日志文件,前台JSON处理查询对照。 详细作用说明参考:http://jingyan.baidu.com/edit/content?type=draft&did=3

    example-spring-boot-embedded-felix:测试如何将Apache Felix嵌入到Spring Boot应用程序中

    将Spring默认日志记录配置为在资源中使用log4j2.xml 为Felix框架添加一种在内部环境中使用Spring引导属性的方法 费利克斯 创建FelixService作为Spring Service Component和ApplicationReadyEvent事件侦听器以对其...

    基于EXT SSI的简单树实现

    一个基于EXT实现的树,先上图。...1 导入 commons-logging-1.1.jar log4j-1.2.14.jar 2 写log4j.properties 3 在代码中使用方式 static Log log = LogFactory.getLog("Action类"); log.debug("result is " + result);

    mybatis学习笔记

    1.6.4 第三步:log4j.properties 6 1.6.5 第四步:SqlMapConfig.xml 6 1.6.6 第五步:po类 7 1.6.7 第六步:程序编写 8 1.6.8 Mybatis解决jdbc编程的问题 15 1.6.9 与hibernate不同 16 2 Dao开发方法 16 2.1 需求 16...

    互联网创意产品众筹平台

    问题一箩筐-关于打印日志log4j问题5 y: }- e: Z$ p6 X9 d0 A9 @ │ 7.问题一箩筐-生产环境模拟, y; v4 Z% p0 }& I+ X* B) t# j │ 8.问题一箩筐-相对路径和绝对路径 │ 9.问题一箩筐-自定义监听器,解决上下文路径...

    JAVA Spring框架实现登陆查询 完整搭建框架方法的word文档 包含mysql文件

    3.3 log4j.properties 日志文件 不用修改 3.4 修改spring-mvc 文件 .1 修改controller包的自动扫描注解,如图 2 定义jsp文件存放的路径 &lt;property name="prefix" value="/jsp/" /&gt; 如图 3.5修改spring-mabtis...

    springboot-ng:springboot+angular -- 17年5月停更

    4.log4j 5.junit 6.token权限验证 7.session超时处理和httpsession监听器 8.bootstarp-Admin框架 9.记录登录者信息,存储在mongodb中.(使用到百度地图api中的IP精确定位) 已包含工具类: 1.ID生成器 2.日期处理 3....

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    第19章 使用log4j进行日志操作 564 19.1 log4j介绍 564 19.1.1 logger组件 564 19.1.2 appender组件 566 19.1.3 layout组件 567 19.2 使用log4j 568 19.3 log4j使用实例 572 19.4 ndc和mdc 585 19.5 小结 ...

    clj-hbase:小型且不完整的 hbase 0.98.3 clojure 包装器

    clj-hbase 这是一个用于 hbase 0.98.3 的小型且仍然不完整的 clojure 包装器 用法 假设我们有一个带有列族“byte-data...log4j:WARN No appenders could be found for logger ( org.apache.hadoop.metrics2.lib.Mutabl

    Java中的Listener监听器

    本文介绍了Listener以下几个方面的内容:  · Listener的定义与作用  · Listener的分类与使用 ...  Spring使用Log4jConfigListener配置Log4j日志  Spring使用IntrospectorCleanupListener清理

Global site tag (gtag.js) - Google Analytics