Flink任務自定義個性化配置logback.xml文件


之前已經寫過如何使用logback將日志直接寫入Kafka,然后通過es和kibana實時查看

但是如果我們想要每個任務都能夠帶上單獨的信息比如開發者、任務名稱等信息,那么就需要每個任務都指定一個logback文件,在這里將主要都步驟寫一下

修改Logback源碼,實現canal日志輸出當前Ip地址和文件夾

1.直接修改logback-classic ch.qos.logback.classic.PatternLayout增加自定義變量

        defaultConverterMap.put("developer", DeveloperConverter.class.getName());
        defaultConverterMap.put("jobname", JobNameConverter.class.getName());
package ch.qos.logback.classic.pattern;

import ch.qos.logback.classic.spi.ILoggingEvent;

public class DeveloperConverter extends ClassicConverter {
    private static String developer = "";

    static {
        try {
            developer = System.getProperty("developer");
        } catch (Exception e) {
            System.out.println(e);
        }
    }

    public String convert(ILoggingEvent event) {
        return developer;
    }
}
package ch.qos.logback.classic.pattern;

import ch.qos.logback.classic.spi.ILoggingEvent;

public class JobNameConverter extends ClassicConverter {
    private static String jobName = "";

    static {
        try {
            jobName = System.getProperty("jobname");
        } catch (Exception e) {
            System.out.println(e);
        }
    }

    public String convert(ILoggingEvent event) {
        return jobName;
    }
}

2.任務啟動的時候增加環境變量

-yD env.java.opts="-Ddeveloper=$dev_user -Djobname=$ynm"

其中$dev_user為任務開發者 $ynm為任務名稱

 這種方案有一點小問題就是 在啟動的時候main線程獲取不到上面的參數,但不影響大局。

 

另外下面這種方案不可行,只在啟動的時候能夠使用到自定義的配置,TM任務打出來的日志都是使用默認conf/logback.xml

1.在啟動腳本中將配置文件寫入到logback.xml

echo "" > logback.xml

2.修改flink框架啟動腳本

vim flink-1.10.1/bin/flink

將這行注釋

#log_setting=(-Dlog.file="$log" -Dlog4j.configuration=file:"$FLINK_CONF_DIR"/log4j-cli.properties -Dlogback.configurationFile=file:"$FLINK_CONF_DIR"/logback.xml)

加上這行
log_setting=(-Dlog.file="$log" -Dlog4j.configuration=file:"$FLINK_CONF_DIR"/log4j-cli.properties)

其實就是將-Dlogback.configurationFile=file:"$FLINK_CONF_DIR"/logback.xml去掉了

3.在任務啟動命令增加配置項

-yD env.java.opts="-Dlogback.configurationFile=logback.xml" 

4.將conf/下log4j.properties都移除掉

 

參考資料:

https://ci.apache.org/projects/flink/flink-docs-release-1.10/monitoring/logging.html#configuring-logback


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM