怎么解决在开发环境下可以输出日志在生产环境没有日志输出问题-创新互联

怎么解决在开发环境下可以输出日志在生产环境没有日志输出问题?相信很多新手小白对此束手无策,通过这篇文章的总结,希望你能找到解决的方法。

创新互联成立十多年来,这条路我们正越走越好,积累了技术与客户资源,形成了良好的口碑。为客户提供成都网站制作、成都网站建设、网站策划、网页设计、主机域名、网络营销、VI设计、网站改版、漏洞修补等服务。网站是否美观、功能强大、用户体验好、性价比高、打开快等等,这些对于网站建设都非常重要,创新互联通过对建站技术性的掌握、对创意设计的研究为客户提供一站式互联网解决方案,携手广大客户,共同发展进步。

一、问题说明:在开发环境和测试环境下均可以输出日志,但在生产环境无日志输出.

二、发现问题
   
   1,系统不同:
      开发环境和测试环境(windows)
      生产环境(linux)
   
   2,提示信息:SLF4J: Class path contains multiple SLF4J bindings(类路径包含多个SLF4J绑定)
         
         a.找到绑定:
         SLF4J: Found binding in [jar:file:/home/service/device/device-tomcat-agv/webapps/showcase/WEB-INF/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
         
         b.找到绑定:
         SLF4J: Found binding in [jar:file:/home/service/device/device-tomcat-agv/webapps/showcase/WEB-INF/lib/log4j-slf4j-impl-2.10.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]

         c.完整日志:
         SLF4J: Class path contains multiple SLF4J bindings.
         SLF4J: Found binding in [jar:file:/home/service/device/device-tomcat-agv/webapps/showcase/WEB-INF/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
         SLF4J: Found binding in [jar:file:/home/service/device/device-tomcat-agv/webapps/showcase/WEB-INF/lib/log4j-slf4j-impl-2.10.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
         SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
         SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
         log4j:WARN No appenders could be found for logger (org.springframework.data.repository.config.RepositoryConfigurationDelegate).
         log4j:WARN Please initialize the log4j system properly.
         log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

         
三、排查问题

   1,开发环境和测试环境(windows):
      先加载的是 log4j-slf4j-impl , 后加载的是 slf4j-log4j12 .
      
   2,生产环境:
      先加载的是 slf4j-log4j12 , 后加载的是 log4j-slf4j-impl .
      
      
四、分析问题
   因为: slf4j 优先绑定先加载的 jar包 .
   所以: 开发环境绑定的是 log4j-slf4j-impl .
       生产环境绑定的是 slf4j-log4j12 .
   
   官方资料:slf4j 集成 log4j2 时需要的桥接包是 log4j-slf4j-impl 。
   开发环境:slf4j 绑定是正确的,因此可以打印日志。
   生产环境:slf4j 绑定的 jar 包是 slf4j-log4j12 。所以生产环境输出不了日志 (产生这个问题的根本原因是lib里面有多个了slf4j可绑定的jar包)

五、解决方案
  由于是 slf4j 绑定 jar 包错误而导致打印不了日志。所以我们必须要把这个 slf4j-log4j12.jar 包排除干净。
   jar 包主要来源有:
   1:zkclient
   2:zookeeper
  
  
六、问题总结
   1:使用 slf4j + log4j2 时使用的桥接包是 log4j-slf4j-impl
   2:当有多个 slf4j 的桥接包时,一定要排除不需要的包
   3:项目启动时控制台输出的信息很重要,耐心观察启动日志可以解决很多问题

看完这篇文章,你能够独立解决在开发环境下可以输出日志在生产环境没有日志输出问题了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章题目:怎么解决在开发环境下可以输出日志在生产环境没有日志输出问题-创新互联
URL分享:http://scyanting.com/article/gdhep.html