之前已经写过如何使用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. Flex布局专题

    Flex布局专题 参照 https://www.runoob.com/w3cnote/flex-grammar.html 下面是自己看代码的一下 小结,和认识,加笔记,加原文 认识容器 flex布局需 ...

  2. Python实现类别变量的独热编码(One-hot Encoding)

      本文介绍基于Python下OneHotEncoder与pd.get_dummies两种方法,实现机器学习中最优的编码方法--独热编码的方法. 目录 1 OneHotEncoder 2 pd.get ...

  3. 视觉十四讲:第七讲_2D-2D:对极几何估计姿态

    1.对极几何 从2张图片中,得到若干个配对好的2d特征点,就可以运用对极几何来恢复出两帧之间的运动. 设P的空间坐标为: \(P=[X,Y,Z]^{T}\) 两个像素点\(p_{1},p_{2}\)的 ...

  4. JavaScript的this指向详解

    一.概念: 函数的上下文(this)由调用函数的方式决定,function是"运行时上下文"策略: 函数如果不调用,则不能确定函数的上下文. 二.规则: 对象打点调用它的方法函数, ...

  5. C++梳理

    1.基础篇 1.C++ 中的四种智能指针 为什么要使⽤智能指针:智能指针其作⽤是管理⼀个指针,避免程序员申请的空间在函数结束时忘记释放,造成内存泄漏这种情况的发⽣.使⽤智能指针可以很⼤程度上的避免这个 ...

  6. nodemon 实现 TypeScript 项目热部署

    下载安装 ts-node.nodemon: npm i -D ts-node nodemon 配置package.json脚本: "dev": "nodemon --wa ...

  7. 3.基于Label studio的训练数据标注指南:文本分类任务

    文本分类任务Label Studio使用指南 1.基于Label studio的训练数据标注指南:信息抽取(实体关系抽取).文本分类等 2.基于Label studio的训练数据标注指南:(智能文档) ...

  8. sqlserver 行转列 列转行

    行列互转,是一个经常遇到的需求.实现的方法,有case when方式和2005之后的内置pivot和unpivot方法来实现. 在读了技术内幕那一节后,虽说这些解决方案早就用过了,却没有系统性的认识和 ...

  9. 域名_服务器_IP之间的关系

    目的: 近期在搞A服务器和云服务器,以及正式环境的B服务器的时候,多次搞不清楚域名,IP的关系. 现在理解看来: IP 分为内网和外网的,以A为例,A是内网的IP,然后申请下来的外网IP是B(还真忘了 ...

  10. 解决Connecting to 127.0.0.1:8118... failed: Connection refused.

    这里是代理问题的锅 $ env|grep -I proxy http_proxy=http://127.0.0.1:8118 ftp_proxy=http://127.0.0.1:8118 https ...