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
Flink任务自定义个性化配置logback.xml文件的更多相关文章
- 使用java代码动态配置与xml文件结合的方式使用mybatis-generator生成代码配置
1.使用java代码动态配置与xml文件结合的方式使用mybatis-generator生成代码配置 2.上代码:在resources目录下新建:generatorConfiguration.xml文 ...
- logback.xml文件配置(按时间、文件大小和log名称生成日志)
之前项目中日志多用的log4j2,偶然看到在importNew看到了logback,自己查了下,发现Logback和log4j是非常相似的,其作者也是同一个人,并且logback相比于log4j性能更 ...
- springboot配置logback.xml
由于springboot框架自带log4j,因此我们只需配置下logback文件,即可, 在main/resources根目录下,新建logback-spring.xml文件,copy下述代码: &l ...
- struts2——配置struts.xml文件
在struts2框架中struts.xml是应当放到src的根目录,程序编译后会将struts.xml放到WEB-INF/classes目录下. Struts2在web.xml中的一般配置如下: &l ...
- eclipse配置mybatis xml文件自动提示(转)
原文链接 原文如下: 如果使用eclipse中,再写mybatis的xml文件的时候,没有提示,用“Alt+/”,不能把代码用快捷键敲出来,可以试试下面要说的这种方法,反正我试了,我这个可以. 1.下 ...
- logback.xml 文件
1.logback.xml <?xml version="1.0" encoding="UTF-8"?> <configuration> ...
- 配置tomcat-users.xml文件
今天在学习登录日志保存时出现一系列错误,想查看浏览器后台的session,结果忘记怎么看用户名和密码了,下面是转载自民工也Coding的一篇文章, 文章链接为:http://www.cnblogs.c ...
- eclipse配置mybatis xml文件自动提示
如果使用eclipse中,再写mybatis的xml文件的时候,没有提示,用“Alt+/”,不能把代码用快捷键敲出来,通过下面这个方法,可以解决. 1.下载一个文件,找一个专门的地方保存,配置自动提示 ...
- 2.6 XML配置:XML文件节点说明
来源:http://blog.csdn.net/five3/article/details/25907693 TestNG的DTD检查文件:http://testng.org/testng-1.0.d ...
- 数据源连接数据库配置相关xml文件
学完数据源连接数据后,做个笔记,当我们的程序对数据库访问频繁时,为了提高程序运行效率,我们可以通过 数据源连接数据库,从数据库连接池中直接取得出于空闲状态的数据库连接对象,以下是相关xml文件的配置: ...
随机推荐
- Sundial(一)
Sundial 源码梳理 - v2.5.6 代码目录一览 通过入口点说明 实现IServiceCollection,并返回IServiceCollection(Extensions/ScheduleS ...
- 如何在阿里云服务器搭建flask
下载flask不用我多说了,pip3 install flask 今天在阿里云的服务器上测试一个Flask程序,命名指定了 ip:0.0.0.0,port:5000,但是外网IP确怎么也访问不了网页 ...
- 关于Spring的IoC容器,你了解多少
IoC的基本概念 Ioc的全称是Inversion of Control,中文通常翻译为"控制反转".好莱坞原则"Dont't call us, we will ca ...
- Linux之ssh远程连接
Linux之ssh远程连接 一.下载远程连接工具Xshell Xshell是一种远程连接工具,可用来远程连接虚拟机. Xshell免费版下载地址 输入名字和邮箱,可以在邮箱看到下载Xshell的链接. ...
- 如何在WSL下交叉编译openwrt
首先我们需要准备一个大小写敏感的文件夹. 然后拉取代码,并且执行代码的先决条件脚本. 注意,如果过程中某项条件不符,你可能要临时修复. 假如下图的组件判定失败(即出现ok=>fail) 那么你就 ...
- 我让 ChatGPT 写了个 ChatGPT
这家伙实在是火得过头了,索性讲个它的故事. 去年11月份,OpenAI 推出了 ChatGPT. 这里就不赘述这个家喻户晓玩意的常识了. 要说刚开始也没多少人在意,一个聊天机器人-- 谁稀罕呐. 但 ...
- jquery(一:认识jquery、选择器)
jQuery 优点: 1.提供了强大的功能函数 2.解决了浏览器的兼容问题 3.实现了丰富的UI和插件 4.纠正错误的脚本知识 例子 1.传统: <!DOCTYPE html> <h ...
- vue3+element表格数据导出
实现效果 导出后的效果: 步骤 第一步:安装依赖 npm install --save xlsx file-saver 第二步:给表格添加id,导出的时候需要用到 <!-- 导出按钮 --> ...
- P4525 【模板】自适应辛普森法 1
\(\text{Solution}\) 题目 \(\text{Simpson}\) 公式: \[\int_l^r f(x) {\mathrm d}x = \frac{(r-l)(f(l)+f(r)+4 ...
- Hbase学习二:Hbase数据特点和架构特点
转载请注明出处: 1.Hbase数据特点 大:一个表可以有上亿行,上百万列. 面向列:面向列表(簇)的存储和权限控制,列(簇)独立检索. 稀疏:对于为空(NULL)的列,并不占用存储空间,因此,表可以 ...