我一直在尝试更改用户日志的日志级别,即出现在/var/log/hadoop-yarn/userlogs/application_下的文件
到目前为止我已经尝试过的事情:
在/etc/hadoop/conf/log4j中将所有记录器设置为跟踪级别。属性
设置mapreduce。地图日志级别
和mapreduce。减少日志在mapred站点中设置级别。xml
设置mapreduce。地图日志级别
和mapreduce。减少日志提交作业配置之前,在作业配置中设置级别
包括log4j。属性
在我的作业jar文件中,该文件将根Log4j记录器设置为跟踪
修改纱线环境。sh
指定纱线_根_记录器=跟踪,控制台
这些都不起作用——它们没有破坏任何东西,但它们对
userlogs
目录下的日志输出没有任何影响。改性纱线环境。sh确实导致ResourceManager和NodeManager日志进入跟踪级别。不幸的是,这些对我的目的没有用处。
我得到以下错误出现在
/var/log/hadoop-yarn/userlogs/application_
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/lib/zookeeper/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/tmp/hadoop-yarn/nm-local-dir/usercache/tomcat/appcache/application_1419961570089_0001/filecache/10/job.jar/lib/slf4j-log4j12-1.7.5.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.apache.hadoop.ipc.Server).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
我不明白为什么会出现log4j“无配置”消息,因为存在
log4j。属性
作业jar文件根目录下的文件,该文件指定了根记录器:
log4j.rootLogger=TRACE, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] %m%n
我的代码没有故意使用SLF4J进行日志记录,它纯粹使用Log4j。
您应该尝试编辑(或创建,如果它不存在): /etc/hadoop/conf/container-log4j.properties.
您可以通过一个简单的ps aux
:命令行包括-Dlog4j。配置=container-log4j。属性
。
关于CDH5。8.我在提交作业时覆盖了应用程序日志级别。为了修改映射器和还原器的日志级别,我必须使用如下命令明确指定它们:
Hadoop jarmy-mapreduce-job.jar-libjars${LIBJARS}-Dyarn.app.mapreduce.am.log.level=DEBUG,控制台-Dmapreduce.map.log.level=DEBUG,控制台-Dmapreduce.reduce.log.level=DEBUG,控制台
日志被写入应用程序的系统日志,可以使用Yarn ResourceManager WebUI浏览该系统日志。
实际的答案是设置纱线。应用程序。mapreduce。是日志level
设置为您需要的级别,但至关重要的是,它需要在提交时在Hadoop作业配置中设置。不能在群集上全局设置。由于是硬编码的,群集全局将始终默认为INFO
。
使用container-log4j。属性本身不起作用,因为纱线会覆盖命令行上的日志级别值。参见
org的方法
和与addLog4jSystemProperties
。阿帕奇。hadoop。mapreduce。v2。util。MRApps组织的交叉引用。阿帕奇。hadoop。mapreduce。MRJobConfig
。
container-log4j.properties
确实会被遵守,但它不能覆盖此属性设置的级别。
我们正在开发几个部署到Azure Function Apps的Quarkus(在撰写本文时为2.5.4)应用程序。 我们注意到,我们所有的日志,无论代码的严重性如何,都在应用洞察中显示为信息。 我们已将 jboss 日志管理器添加到依赖项中: 当我检查日志时,它显示为这样。 2022-02-24T07:58:14.325[Information] 2022-02-24T07:58:14.308[I
我有一个用例,在这个用例中,我运行了数千个SQL查询和日志记录集,按照现在的情况,将每个查询写到控制台需要花费大量时间,并且会使客户端的调用超时。我试着将pom.xml中dev概要文件的logback.loglevel属性设置为ERROR,但是没有用。 所以我的问题是: < li >是否可以为单独的REST调用配置日志级别? < li >如何全局配置应用程序的日志级别?
我怎么能那样做 直接使用JDK日志记录(我看到可以使用ResourceBundle,但我没有设法使其工作,而且我也不知道该文件中的内容) 使用SLF4 facade(我想这将意味着调整SLF4J的函数,它是我用来获取记录器的函数)
我目前正在尝试降低我在java项目中使用的PDFBox 1.8.6库的日志记录级别,但失败了。基于前面的问题,我在 /src/目录中有以下log4j.properties文件。 我不确定我还遗漏了什么,因为我仍然在控制台中收到类似以下消息的垃圾邮件。 如果有一种方法可以通过编程方式更改日志级别,那么我根本不会附加到属性文件,因为我在其他任何地方都不使用log4j。我不知道它是否使用log4j。属性
问题内容: 我在系统中收到以下消息:“ FacesMessage已入队…。 ”。 Sun的JavaServer Faces实现(1.2_07-b03-FCS)的解决方案是将其添加到web.xml: 但是出于某种原因,该解决方案不适用于我正在使用 Mojarra(1.2_15-b01-FCS)的 该实施 。 该文档说,我只需要简单地更改RenderResponsePhase的记录器即可。 Faces
如何设置在TomEE中运行的OpenEJB组件的日志记录级别?我想从的源代码中查看调试日志记录语句。 我尝试修改conf/logging.properties并在WAR的WEB-INF\类中添加一个logging.properties文件,但我找不到正确的组合,我甚至不确定这些是要修改/创建的正确文件。