之前已经写过如何使用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

Flink任务自定义个性化配置logback.xml文件的更多相关文章

  1. 使用java代码动态配置与xml文件结合的方式使用mybatis-generator生成代码配置

    1.使用java代码动态配置与xml文件结合的方式使用mybatis-generator生成代码配置 2.上代码:在resources目录下新建:generatorConfiguration.xml文 ...

  2. logback.xml文件配置(按时间、文件大小和log名称生成日志)

    之前项目中日志多用的log4j2,偶然看到在importNew看到了logback,自己查了下,发现Logback和log4j是非常相似的,其作者也是同一个人,并且logback相比于log4j性能更 ...

  3. springboot配置logback.xml

    由于springboot框架自带log4j,因此我们只需配置下logback文件,即可, 在main/resources根目录下,新建logback-spring.xml文件,copy下述代码: &l ...

  4. struts2——配置struts.xml文件

    在struts2框架中struts.xml是应当放到src的根目录,程序编译后会将struts.xml放到WEB-INF/classes目录下. Struts2在web.xml中的一般配置如下: &l ...

  5. eclipse配置mybatis xml文件自动提示(转)

    原文链接 原文如下: 如果使用eclipse中,再写mybatis的xml文件的时候,没有提示,用“Alt+/”,不能把代码用快捷键敲出来,可以试试下面要说的这种方法,反正我试了,我这个可以. 1.下 ...

  6. logback.xml 文件

    1.logback.xml <?xml version="1.0" encoding="UTF-8"?> <configuration> ...

  7. 配置tomcat-users.xml文件

    今天在学习登录日志保存时出现一系列错误,想查看浏览器后台的session,结果忘记怎么看用户名和密码了,下面是转载自民工也Coding的一篇文章, 文章链接为:http://www.cnblogs.c ...

  8. eclipse配置mybatis xml文件自动提示

    如果使用eclipse中,再写mybatis的xml文件的时候,没有提示,用“Alt+/”,不能把代码用快捷键敲出来,通过下面这个方法,可以解决. 1.下载一个文件,找一个专门的地方保存,配置自动提示 ...

  9. 2.6 XML配置:XML文件节点说明

    来源:http://blog.csdn.net/five3/article/details/25907693 TestNG的DTD检查文件:http://testng.org/testng-1.0.d ...

  10. 数据源连接数据库配置相关xml文件

    学完数据源连接数据后,做个笔记,当我们的程序对数据库访问频繁时,为了提高程序运行效率,我们可以通过 数据源连接数据库,从数据库连接池中直接取得出于空闲状态的数据库连接对象,以下是相关xml文件的配置: ...

随机推荐

  1. Sundial(一)

    Sundial 源码梳理 - v2.5.6 代码目录一览 通过入口点说明 实现IServiceCollection,并返回IServiceCollection(Extensions/ScheduleS ...

  2. 如何在阿里云服务器搭建flask

    下载flask不用我多说了,pip3 install flask 今天在阿里云的服务器上测试一个Flask程序,命名指定了 ip:0.0.0.0,port:5000,但是外网IP确怎么也访问不了网页 ...

  3. 关于Spring的IoC容器,你了解多少

    IoC的基本概念   Ioc的全称是Inversion of Control,中文通常翻译为"控制反转".好莱坞原则"Dont't call us, we will ca ...

  4. Linux之ssh远程连接

    Linux之ssh远程连接 一.下载远程连接工具Xshell Xshell是一种远程连接工具,可用来远程连接虚拟机. Xshell免费版下载地址 输入名字和邮箱,可以在邮箱看到下载Xshell的链接. ...

  5. 如何在WSL下交叉编译openwrt

    首先我们需要准备一个大小写敏感的文件夹. 然后拉取代码,并且执行代码的先决条件脚本. 注意,如果过程中某项条件不符,你可能要临时修复. 假如下图的组件判定失败(即出现ok=>fail) 那么你就 ...

  6. 我让 ChatGPT 写了个 ChatGPT

    这家伙实在是火得过头了,索性讲个它的故事. 去年11月份,OpenAI 推出了 ChatGPT.  这里就不赘述这个家喻户晓玩意的常识了. 要说刚开始也没多少人在意,一个聊天机器人-- 谁稀罕呐. 但 ...

  7. jquery(一:认识jquery、选择器)

    jQuery 优点: 1.提供了强大的功能函数 2.解决了浏览器的兼容问题 3.实现了丰富的UI和插件 4.纠正错误的脚本知识 例子 1.传统: <!DOCTYPE html> <h ...

  8. vue3+element表格数据导出

    实现效果 导出后的效果: 步骤 第一步:安装依赖 npm install --save xlsx file-saver 第二步:给表格添加id,导出的时候需要用到 <!-- 导出按钮 --> ...

  9. P4525 【模板】自适应辛普森法 1

    \(\text{Solution}\) 题目 \(\text{Simpson}\) 公式: \[\int_l^r f(x) {\mathrm d}x = \frac{(r-l)(f(l)+f(r)+4 ...

  10. Hbase学习二:Hbase数据特点和架构特点

    转载请注明出处: 1.Hbase数据特点 大:一个表可以有上亿行,上百万列. 面向列:面向列表(簇)的存储和权限控制,列(簇)独立检索. 稀疏:对于为空(NULL)的列,并不占用存储空间,因此,表可以 ...