如何加载指定路径的Logback.xml

今天想外置logback.xml,谢了如下代码

     File logbackFile = new File("./conf/logback.xml");
        if (logbackFile.exists()) {
            LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
            JoranConfigurator configurator = new JoranConfigurator();
            configurator.setContext(lc);
            lc.reset();
            try {
                configurator.doConfigure(logbackFile);
            }
            catch (JoranException e) {
                e.printStackTrace(System.err);
                System.exit(-1);
            }
        }

但是老师不按照策略输出,整了两小时,开始以为lc.reset()放错位置了,但是后来发现是我的JoranConfigurator这个类引用错了,正确的类路径是

ch.qos.logback.classic.joran.JoranConfigurator

但是我错误引用了

ch.qos.logback.access.joran.JoranConfigurator

哭死的节奏,debug到代码里面怎么就说没有处理contextName的Action,原来ch.qos.logback.access只处理基本的配置,上下文这个处理在logback-classic里面,究其原因是因为eclipse的自动提示,我下意识就选了第一个,这也算桑踹个检讨书吧.

时间: 2024-10-11 17:19:09

如何加载指定路径的Logback.xml的相关文章

JVM自定义类加载器加载指定classPath下的所有class及jar

一.JVM中的类加载器类型 从Java虚拟机的角度讲,只有两种不同的类加载器:启动类加载器和其他类加载器. 1.启动类加载器(Boostrap ClassLoader):这个是由c++实现的,主要负责JAVA_HOME/lib目录下的核心 api 或 -Xbootclasspath 选项指定的jar包装入工作. 2.其他类加载器:由java实现,可以在方法区找到其Class对象.这里又细分为几个加载器 a).扩展类加载器(Extension ClassLoader):负责用于加载JAVA_HOM

[转] Entity Framework 无法加载指定的元数据资源。

Entity Framework 发布以来,本人也一直在用,深感好用,忍不住地要感谢微软啊!由于项目结构创建完成后,没怎么改动过,所以一直没出题过问题,可最近由于改动了下命名空间,问题来了,正是标题中的"无法加载指定的元数据资源".经过百般调试终于解决了,写下做为记录. 先详细说下问题出现的原因: 自从项目创建以来 Authorize.edmx 模型文件一直放在 Model文件夹下 项目一直调试运行,没有出现过错误,最近因项目需要将Model 更名为Models问题随之而来,在调用实体

java动态加载指定的类或者jar包反射调用其方法

序言 有时候,项目中会用到java动态加载指定的类或者jar包反射调用其方法来达到模块的分离,使各个功能之间耦合性大大降低,更加的模块化,代码利用率更高.模式中的代理模式就用到java的这一机制.下边就让我们通过代码来看看如何实现此功能. 代码详细 package loadjarclass; import java.io.File; import java.lang.reflect.Method; import java.net.URL; import java.net.URLClassLoad

ClassLoader加载指定的类需注意六个细节或报ClassNotFundEception异常总结

项目中,加载指定的类反射调用方法一直报类找不到,经过数百次的测试,对这种问题有了一个重新的认识,特总结.记录.分享如下: 1.路径中尽可能用"/"或者File.separator()而非"\\",路径中"\"是windows平台的,linux平台中是"/",java中也是用"/"作为路径的,所以为了跨平台和更规范,建议采用前者 2.在当前的环境中获取绝对路径后,尽可能的replace("\\&qu

背水一战 Windows 10 (64) - 控件(WebView): 加载指定 HttpMethod 的请求, 自定义请求的 http header, app 与 js 的交互

[源码下载] 作者:webabcd 介绍背水一战 Windows 10 之 控件(WebView) 加载指定 HttpMethod 的请求 自定义请求的 http header app 与 js 的交互 示例1.演示 WebView 如何加载指定 HttpMethod 的请求以及如何自定义请求的 http headerWebApi/Controllers/WebViewPostController.cs /* * 用于 WebView 演示“如何加载指定 HttpMethod 的请求,以及如何自

Entity FrameWork异常:无法加载指定的元数据资源

今天在EF开发的过程中报出这样的错误:Entity FrameWork异常:无法加载指定的元数据资源 在网上看了一些帖子,一般说的解决方法都比较繁琐. 我是这么解决的: 首先我先说下我的文件结构层次:存在web类库和Dal类库,而数据的edmx是在DAL类库中. 我猜想可能是两个配置文件不同造成的,就把dal中的appconfig中的连接键复制到web的webconfig中,并删除掉原来的,果然就不报错了,但又出现了另一个错误:基础提供程序在 Open 上失败 然后,我把web中的webconf

加载指定包下的所有类

package util; import java.io.File; import java.io.FileFilter; import java.io.IOException; import java.net.JarURLConnection; import java.net.URL; import java.util.Enumeration; import java.util.HashSet; import java.util.Set; import java.util.jar.JarEnt

OpenLayers学习--加载指定等级指定范围的高德地图数据

在使用高德地图数据的时候,我们通常不需要加载世界地图,只需要指定项目片区地图数据即可:同样,我们也不需要所有等级的数据,只需要指定等级数据即可. 按照<OpenLayers学习--Layer体系(一)>中的方法,直接使用XYZ图层类来加载,显然无法实现该功能.主要原因有以下两点: 1.没有指定地图的分辨率 OpenLayers的机制就是,当你没有给Layer指定分辨率,也没有给Map指定分辨率,则直接将地图的最大范围的左上角点作为切图原点,并且按照18级来计算切图分辨率,分辨率是以1/2向下递

PHP中使用set_include_path动态设置文件加载扫描路径

/index.php/include/config.php 下面是index.php <?php  $path = '/usr/lib/pear';  set_include_path(get_include_path() . PATH_SEPARATOR . $path); //设置后的include_path变为类似/usr/lib/function;/usr/lib/pear  include("config.php"); //先搜索当前目录->搜索get_inclu