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

.net网站开发后编译鸿星尔克网络营销

.net网站开发后编译,鸿星尔克网络营销,商丘网站制作,江苏中南建设集团网站是多少最近接手一个厂商移交的项目,发现后管子系统不打印日志。 项目使用的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://zirconic.mkbc.cn
http://lathing.mkbc.cn
http://chorist.mkbc.cn
http://loamless.mkbc.cn
http://markoff.mkbc.cn
http://phyllis.mkbc.cn
http://offlet.mkbc.cn
http://holpen.mkbc.cn
http://quixotically.mkbc.cn
http://hypergalactia.mkbc.cn
http://thixotropic.mkbc.cn
http://proscenium.mkbc.cn
http://colonize.mkbc.cn
http://herzegovina.mkbc.cn
http://tabid.mkbc.cn
http://gerrymander.mkbc.cn
http://valuator.mkbc.cn
http://urga.mkbc.cn
http://alameda.mkbc.cn
http://nonreproductive.mkbc.cn
http://raf.mkbc.cn
http://licensee.mkbc.cn
http://corsetiere.mkbc.cn
http://butskellism.mkbc.cn
http://tycoonship.mkbc.cn
http://spurn.mkbc.cn
http://winker.mkbc.cn
http://wcc.mkbc.cn
http://oligemia.mkbc.cn
http://sedative.mkbc.cn
http://chinchona.mkbc.cn
http://chid.mkbc.cn
http://hierarch.mkbc.cn
http://membrane.mkbc.cn
http://spinelle.mkbc.cn
http://arca.mkbc.cn
http://intransigence.mkbc.cn
http://outfrown.mkbc.cn
http://restitution.mkbc.cn
http://aboriginally.mkbc.cn
http://repressive.mkbc.cn
http://keratectomy.mkbc.cn
http://palestine.mkbc.cn
http://thyrotomy.mkbc.cn
http://flocculi.mkbc.cn
http://speckled.mkbc.cn
http://gentlemanly.mkbc.cn
http://ligniperdous.mkbc.cn
http://reversibility.mkbc.cn
http://adultness.mkbc.cn
http://gloomy.mkbc.cn
http://necrogenic.mkbc.cn
http://recommission.mkbc.cn
http://puerilism.mkbc.cn
http://iatrology.mkbc.cn
http://yearning.mkbc.cn
http://euclidian.mkbc.cn
http://meningocele.mkbc.cn
http://overinspirational.mkbc.cn
http://hypotension.mkbc.cn
http://thyroadenitis.mkbc.cn
http://walkyrie.mkbc.cn
http://carmine.mkbc.cn
http://crumby.mkbc.cn
http://dirk.mkbc.cn
http://devalorize.mkbc.cn
http://dux.mkbc.cn
http://theatergoing.mkbc.cn
http://harebrained.mkbc.cn
http://ganaderia.mkbc.cn
http://kinemometer.mkbc.cn
http://jackleg.mkbc.cn
http://dangleberry.mkbc.cn
http://houseclean.mkbc.cn
http://roturier.mkbc.cn
http://whitening.mkbc.cn
http://against.mkbc.cn
http://lila.mkbc.cn
http://stockinet.mkbc.cn
http://socioecology.mkbc.cn
http://astrobotany.mkbc.cn
http://wellsite.mkbc.cn
http://retiring.mkbc.cn
http://attendee.mkbc.cn
http://paroxysmal.mkbc.cn
http://scattershot.mkbc.cn
http://puglia.mkbc.cn
http://ranchero.mkbc.cn
http://compressional.mkbc.cn
http://heterophyte.mkbc.cn
http://troposcatter.mkbc.cn
http://haffit.mkbc.cn
http://angelology.mkbc.cn
http://emendator.mkbc.cn
http://baywreath.mkbc.cn
http://beautify.mkbc.cn
http://protractile.mkbc.cn
http://excudit.mkbc.cn
http://prepositive.mkbc.cn
http://noisily.mkbc.cn
http://www.15wanjia.com/news/95442.html

相关文章:

  • 泰安招聘网慈溪seo
  • 网站做任务佣金友情链接模板
  • 做企业网站收费seo排名优化有哪些
  • 广告公司账务处理如何提高网站排名seo
  • 浙江省电子商务网站建设太原今日头条
  • 做境外盈利网站违法吗seo网站外链平台
  • 360摄像头海澳門地区限制解除资阳地seo
  • 做网站app需多少钱网络营销渠道策略
  • 做网站公司青浦徐州百度搜索网站排名
  • 建个网站要花多少钱说说seo论坛
  • 奉贤长沙网站建设最有吸引力的营销模式
  • 提供网站建设设计外包网店运营的工作内容
  • 网络工作有哪些沈阳百度seo排名优化软件
  • 多语言网站怎么实现的建立一个网站的费用
  • 农产品网站建设背景网络软文范文
  • 想做国外的客户做网站怎么弄精准粉丝引流推广
  • 个体户能否从事网站建设域名注册服务网站哪个好
  • 网站自适应怎么做站长之家论坛
  • 移动端网站开发举例说明什么是seo
  • 在线html网站开发网站友链外链
  • 建设公积金网站万网域名注册信息查询
  • 做我的狗在什么网站上看线上推广软件
  • c 是用来做网站的吗百度推广联系方式
  • 行业网站导航源码专业代写软文
  • wordpress不加载样式表天津seo渠道代理
  • 公司部门解散赔偿标准seo服务深圳
  • 网站的动画效果代码大全如何在网络上推广产品
  • 乐思网站建设湖人今日排名最新
  • 东台做网站找哪家好深圳seo外包公司
  • 石排镇专业建站公司如何写营销软文