当前位置: 首页 > 知识库问答 >
问题:

Log4j在多个节点中创建日志。希望在一个节点中创建单个日志

公冶泰
2023-03-14

我有一个多节点集群星火集群。我正在使用log4j创建日志。日志只创建集群中的所有节点。它们也是在/tmp目录中创建的,而不是在任何其他目录中创建的。这是

共有1个答案

聂宜
2023-03-14

在多节点spark集群上,应用程序的日志由spark驱动程序编写。

>

  • 如果在节点A上使用客户端模式执行,则日志将保存在节点A上

    如果以集群模式执行,日志将保存在运行spark驱动程序的节点上。

    示例:

    @version: 3.5
    @include "scl.conf"
    @include "`scl-root`/system/tty10.conf"
        options {
            time-reap(30);
            mark-freq(10);
            keep-hostname(yes);
            };
        source s_local { system(); internal(); };
    
        source s_network {
            syslog(transport(udp) port(514));
            };
    
        destination df_local2 {
            file(
                "/var/log/MyClusterLogs/myAppLogs.$YEAR-$MONTH-$DAY.log"
                owner("user")
                group("user")
                perm(0777)
                ); };
        filter f_local2 { facility(local2); };
        log { source(s_network); filter(f_local2); destination(df_local2); };
    

    然后,将spark应用程序的log4j.properties文件中的配置更改为指向syslog服务器:

    log4j.rootCategory=INFO,FILE,SYSLOG
    log4j.appender.SYSLOG=org.apache.log4j.net.SyslogAppender
    log4j.appender.SYSLOG.syslogHost=<syslog_server_ip>
    log4j.appender.SYSLOG.layout=org.apache.log4j.PatternLayout
    log4j.appender.SYSLOG.layout.conversionPattern=%d{ISO8601} %-5p [%t] %c{2} %x - %m%n
    log4j.appender.SYSLOG.Facility=LOCAL2
    

  •  类似资料:
    • 我不太确定它是如何工作的,任何建议或帮助将非常感谢!

    • 但它没有提供所需的产出。它给出的输出像 我是XSL的新手。有谁能帮我解决这个问题吗?

    • 我正在尝试将我们的 jenkins 构建日志推送到 S3。我在构建阶段使用了Groovy插件和以下脚本 然后我使用 S3 插件将.txt文件推送到 S3。 但是这个脚本从主节点获取构建日志文件。构建日志如何从从节点传输到主节点?我可以在没有主节点参与的情况下访问我的从节点上的构建日志文件吗? 从节点必须在某处构建时保留构建日志?我似乎找不到。

    • 我想创建单独的日志文件,一个用于信息,另一个用于调试,我正在使用下面的log4j.property文件,请建议如何修改不同文件中的两级日志记录, 我想请求请发送我更新的属性文件而不是给我搜索或探索的指针,因为我已经花了3-4个小时在Google和StackOverflow上搜索这个解决方案, 提前道谢。

    • 问题内容: 我当前正在创建一个可以包含模块的系统(将它们视为插件),其中每个模块可以拥有自己的专用日志。 我想使用log4j2项目进行日志记录,但是文件附加器似乎有些麻烦。 主项目(整个模块的模块加载器和“核心”)应具有自己的日志文件,而模块应具有自己的日志文件(如)。 通过阅读有关追加程序的文档,我发现了该类,并且我将使用它。直到我发现不能简单地将追加器添加到由创建的默认记录器中。 LogMan

    • 我目前正在创建一个系统,可以有模块(把它们看作插件),其中每一个都可以有自己的日志,专用的。 我想使用log4j2项目进行日志记录,但我似乎在文件附加符方面遇到了一些麻烦。 主项目(模块加载器和整个事情的“核心”)应该有自己的日志文件,而模块应该有自己的日志文件(像)。 即使搜索也没有给我提供任何接近的解决方案,我找到的只是xml配置中预定义的文件日志--这不是我想要的。 感谢你的阅读;即使是最轻