设为首页 收藏本站
查看: 1020|回复: 0

[经验分享] 关于log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.

[复制链接]

尚未签到

发表于 2017-12-25 14:37:32 | 显示全部楼层 |阅读模式
DSC0000.png

  今天在运行某程序时出现了如上图所示的问题,查找资料后发现是由于由于log4j这个日志信息打印模块的配置信息没有给出造成的,简单的说就是人家要有个地方来存放日志的打印信息,可是你又不给人家,所以就报错了吧
  解决办法:
  在你的项目的src目录中创建一个名为log4j.properties的文本文件,记住是文本文件,不是文件夹
DSC0001.png

  然后在你的文本文件中加入如下的内容:
  

# Configure logging for testing: optionally with log file  

  
#log4j.rootLogger
=debug,appender  
log4j.rootLogger
=info,appender  
#log4j.rootLogger
=error,appender  

  
#\u8F93\u51FA\u5230\u63A7\u5236\u53F0  
  
log4j.appender.appender
=org.apache.log4j.ConsoleAppender  
#\u6837\u5F0F\u4E3ATTCCLayout  
  
log4j.appender.appender.layout
=org.apache.log4j.TTCCLayout  

  我去==没成功 啥原因 继续找
  根据错误提示中的链接到Apache官网找日志信息,然鹅(ಥ_ಥ)全是英文 后悔之前没好好学英语 不行 硬着头皮也得把他弄懂了
DSC0002.png

  其实也还蛮简单的 大致上就是说log4j的配置文件没有找到并且应用程序执行的时候没有显示配置,而log4j呢,是依靠Thread.getContextClassLoader().getResource() 这两个类去定位文件的默认信息而不是直接去查他的文件系统,而你要将log4j放在合适的位置就需要知道类装入器(class loader大致是这么个理)的搜索策略,log4j没有提供一个默认的配置不管是输入到控制台还是到文件系统中,不过也可能在某些环境中被禁止。哔哔了半天,就是和文章开头我言简意赅的解释一样
  并没有解决问题,所以接着看:
DSC0003.png

  简单的说就是 log4j的类和属性文件不在同一个类加载器的范围。
  不简单的说==就是 J2EE或servlet容器利用java的类加载系统,Sun改变了方法与java 2的发布方式,在java类装载器2,被安排在一个分层的parent-child关系,当一个子类的类加载器需要找到一个类或资源,它首先代表父类的要求。
  log4j只使用默认的类加载类forname()机制 结论就是:所以,如果你有问题,尝试自己加载类或资源
  看样子Apache的log也没帮到忙
  最后在外网上找到一个回答:
DSC0004.png

  将该方法插入到main函数中,可以自行打印日志信息了
  

BasicConfigurator.configure(); //自动快速地使用缺省Log4j环境。  

  然后测试程序没有问题:
DSC0005.png

  ------------------------------------------------------------------------------------
  BUT 虽然日志信息打印出来了 可是配置的问题其实还是没有解决

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-427878-1-1.html 上篇帖子: cenos下配置Apache+PHP最新版7.1.6+MySQL最新版(5.7.18) 下篇帖子: apache伪静态设置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表