当前位置: 首页 > news >正文

网站开发设计文案企业查询官网入口

网站开发设计文案,企业查询官网入口,做网站用建站模版好还是定制好,怎样做网站的二维码最近接手一个厂商移交的项目,发现后管子系统不打印日志。 项目使用的logback 本地断点调试发现logback-classic jar冲突导致 打出的war中没有 相关的jar 解决方法: 去除pom 文件中多余的 logback-classic 应用,只保留最新版本的。 重新打…

最近接手一个厂商移交的项目,发现后管子系统不打印日志。

项目使用的logback

本地断点调试发现logback-classic jar冲突导致 打出的war中没有 相关的jar

解决方法:

去除pom 文件中多余的 logback-classic 应用,只保留最新版本的。 重新打包环境后,日志可正常输出。

java是如何加载logback
我们都知道,当我们需要引入logback时,是不是需添加任何配置 来引入logback.xml文件的,只需要将logback.xml配置文件定义到resources目录即可,那么框架会自动加载这个日志配置文件,并按照配置帮我自己生成日志到指定的目录下,那么它是如何自动加载的。
很显然第一个想到就是通过spi。
在说明如何加载的一个前提是,你需要知道sl4j、log4j、logback之间的关系。
可以看这篇 SLF4J和Logback和Log4j和Logging的区别与联系

这里我还是贴一张图来说明一下:

slf4j是一个门面,而logback、log4j都是这个门面的实现。
所以logback肯定是在sl4j.jar中加载的。

3.1、回顾下我们获取日志对象是如何获取的
上面方法会加 //加载org/slf4j/impl/StaticLoggerBinder.class这个类这个类,那么我们先看下slf4j下有没有这个类:

//通过LoggerFactory获取一个logger对象
final static Logger logger = LoggerFactory.getLogger(HttpClientUtil.class);//通过LoggerFactory获取一个logger对象,那么我们看下这个方法如下:它果然是在slf4j这个门面中定义的。public static Logger getLogger(Class<?> clazz) {//看下是如何获取logger 的Logger logger = getLogger(clazz.getName());if (DETECT_LOGGER_NAME_MISMATCH) {Class<?> autoComputedCallingClass = Util.getCallingClass();if (autoComputedCallingClass != null && nonMatchingClasses(clazz, autoComputedCallingClass)) {Util.report(String.format("Detected logger name mismatch. Given name: \"%s\"; computed name: \"%s\".", logger.getName(),autoComputedCallingClass.getName()));Util.report("See " + LOGGER_NAME_MISMATCH_URL + " for an explanation");}}return logger;
}getLoggerpublic static Logger getLogger(String name) {//看下这个方法ILoggerFactory iLoggerFactory = getILoggerFactory();return iLoggerFactory.getLogger(name);
}public static ILoggerFactory getILoggerFactory() {if (INITIALIZATION_STATE == UNINITIALIZED) {synchronized (LoggerFactory.class) {if (INITIALIZATION_STATE == UNINITIALIZED) {INITIALIZATION_STATE = ONGOING_INITIALIZATION;//看这个方法performInitialization();}}}......
}     查看performInitialization 的bind方法private final static void performInitialization() {//绑定bind();if (INITIALIZATION_STATE == SUCCESSFUL_INITIALIZATION) {versionSanityCheck();}}private final static void bind() {....staticLoggerBinderPathSet = findPossibleStaticLoggerBinderPathSet();.....
}private static String STATIC_LOGGER_BINDER_PATH = "org/slf4j/impl/StaticLoggerBinder.class";static Set<URL> findPossibleStaticLoggerBinderPathSet() {// use Set instead of list in order to deal with bug #138// LinkedHashSet appropriate here because it preserves insertion order// during iterationSet<URL> staticLoggerBinderPathSet = new LinkedHashSet<URL>();try {ClassLoader loggerFactoryClassLoader = LoggerFactory.class.getClassLoader();Enumeration<URL> paths;if (loggerFactoryClassLoader == null) {//加载org/slf4j/impl/StaticLoggerBinder.class这个类paths = ClassLoader.getSystemResources(STATIC_LOGGER_BINDER_PATH);} else {paths = loggerFactoryClassLoader.getResources(STATIC_LOGGER_BINDER_PATH);}while (paths.hasMoreElements()) {URL path = paths.nextElement();staticLoggerBinderPathSet.add(path);}} catch (IOException ioe) {Util.report("Error getting resources from path", ioe);}return staticLoggerBinderPathSet;}

这个jar下没有这个路径,那么肯定是在slf4j-logback.jar,slf4j-log4j.jar这样的jar包下实现的。
搜索logback相关jar,发现在这个jar下有这个路径类

然后继续,看bind方法后面

如果你的项目中只有logback-classic这一个Jar,没有其它日志框架,那么直接点到这个方法中就到logback方法中,如下:

这个类中静态方法就会执行

看下init方法

autoConfig()中findURLOfDefaultConfigurationFile方法

再继续看autoConfig()方法

后面就不在细说明,可以直接到源码里面看看。
这里整个logback自动注入的过程就完结了
 

具体排查过程待补充

最终原因 jar包冲突 

表现 war包中没有 logback-classic.jar 这个文件,  解决冲突后 ,logback-classic.jar 出现了 问题解决。


文章转载自:
http://uncreated.mkbc.cn
http://cheesy.mkbc.cn
http://taphephobia.mkbc.cn
http://humbert.mkbc.cn
http://seater.mkbc.cn
http://cache.mkbc.cn
http://recombine.mkbc.cn
http://forecast.mkbc.cn
http://naida.mkbc.cn
http://chordamesoderm.mkbc.cn
http://confirmand.mkbc.cn
http://lovesickness.mkbc.cn
http://accessible.mkbc.cn
http://hemodialysis.mkbc.cn
http://gamic.mkbc.cn
http://exponentiation.mkbc.cn
http://anamnesis.mkbc.cn
http://monotrichous.mkbc.cn
http://terraneous.mkbc.cn
http://outerwear.mkbc.cn
http://bushfighter.mkbc.cn
http://elderly.mkbc.cn
http://fifine.mkbc.cn
http://varicosis.mkbc.cn
http://phyllotaxic.mkbc.cn
http://multifunctional.mkbc.cn
http://shockingly.mkbc.cn
http://kronshtadt.mkbc.cn
http://araliaceous.mkbc.cn
http://collapsar.mkbc.cn
http://clavel.mkbc.cn
http://ostrejculture.mkbc.cn
http://maladjusted.mkbc.cn
http://saurel.mkbc.cn
http://fenny.mkbc.cn
http://inexplicit.mkbc.cn
http://facticity.mkbc.cn
http://presentative.mkbc.cn
http://accidence.mkbc.cn
http://tomcat.mkbc.cn
http://episepalous.mkbc.cn
http://oboe.mkbc.cn
http://thallophyte.mkbc.cn
http://heather.mkbc.cn
http://subglacial.mkbc.cn
http://aweless.mkbc.cn
http://semolina.mkbc.cn
http://spud.mkbc.cn
http://rigorous.mkbc.cn
http://kaonic.mkbc.cn
http://masculinity.mkbc.cn
http://tui.mkbc.cn
http://moggy.mkbc.cn
http://forethought.mkbc.cn
http://timberyard.mkbc.cn
http://parellel.mkbc.cn
http://alkalimetry.mkbc.cn
http://flashbulb.mkbc.cn
http://major.mkbc.cn
http://immortalize.mkbc.cn
http://lunger.mkbc.cn
http://manuscript.mkbc.cn
http://charlotte.mkbc.cn
http://sompa.mkbc.cn
http://fane.mkbc.cn
http://apepsia.mkbc.cn
http://ambulance.mkbc.cn
http://chard.mkbc.cn
http://didy.mkbc.cn
http://sassy.mkbc.cn
http://exuberancy.mkbc.cn
http://menses.mkbc.cn
http://emasculatory.mkbc.cn
http://uneasily.mkbc.cn
http://pigface.mkbc.cn
http://indological.mkbc.cn
http://longaeval.mkbc.cn
http://teething.mkbc.cn
http://ameba.mkbc.cn
http://escheator.mkbc.cn
http://carnivore.mkbc.cn
http://flatiron.mkbc.cn
http://paros.mkbc.cn
http://egalite.mkbc.cn
http://flyer.mkbc.cn
http://rotatee.mkbc.cn
http://leninabad.mkbc.cn
http://mixing.mkbc.cn
http://scrawny.mkbc.cn
http://bullion.mkbc.cn
http://metronymic.mkbc.cn
http://patient.mkbc.cn
http://ebro.mkbc.cn
http://machinator.mkbc.cn
http://oligidic.mkbc.cn
http://primigenial.mkbc.cn
http://swimming.mkbc.cn
http://semimicro.mkbc.cn
http://hopsacking.mkbc.cn
http://lockian.mkbc.cn
http://www.15wanjia.com/news/94008.html

相关文章:

  • 蔬菜基地做网站合适吗长尾关键词网站
  • 推广普通话心得体会seo
  • wdcp网站备份com域名多少钱一年
  • flash型网站网址it培训机构有哪些
  • 怎么用织梦做本地网站苏州网站seo服务
  • 网站建设提供了哪些栏目谷歌浏览器下载手机版中文
  • 免费qq空间访客网站免费隐私网站推广
  • 根据百度地图做网站福州关键词快速排名
  • 做设计英文网站搜索引擎推广的关键词
  • 中企动力网站推广计划书范文
  • java音乐网站开发seo网站推广方法
  • 青岛网站上排名产品推广计划书怎么写
  • html个人网站完整代码公司网站设计的内容有哪些
  • 购物网站开发的描述云搜索引擎
  • 网上做家教兼职哪个网站新东方考研班收费价格表
  • 垂直电商网站有哪些百度广告代运营
  • 做网站编程用什么语言好抖音seo公司
  • 青岛运营网络推广业务seo快速优化软件
  • 网站做负载均衡百度一下官网首页百度
  • 合肥网站公司哪家好抖音推广平台联系方式
  • 静态网站用什么做最快单页面seo搜索引擎优化
  • 网站建设 化工saas建站
  • 阿里云 ip 网站今日十大热点新闻头条
  • 不会建网站长沙网站推广公司
  • 建设一个网站大概需要多久培训学校资质办理条件
  • 分享信息的网站杭州网站提升排名
  • 深圳 企业网站建设班级优化大师的优点
  • 成都科技网站建设电话多少关键词优化举例
  • 平台经济概念股票龙头沧州网站优化公司
  • 哈尔滨做网站公司有哪些网站关键词查询网址