之前已经写过如何使用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. vulnhub靶场之MOMENTUM: 2

    准备: 攻击机:虚拟机kali.本机win10. 靶机:Momentum: 2,下载地址:https://download.vulnhub.com/momentum/Momentum2.ova,下载后 ...

  2. MATLAB人工神经网络ANN代码

      本文介绍基于MATLAB实现人工神经网络(ANN)回归的详细代码与操作. 目录 1 分解代码 1.1 循环准备 1.2 神经网络构建 1.3 数据处理 1.4 模型训练参数配置 1.5 神经网络实 ...

  3. VeryCapture V1.8.9.5 中文版安装使用教程

    VeryCapture简介 VeryCapture中文版是一款实用的屏幕捕捉工具.VeryCapture最新版持将图钉在桌面.这个功能可以方便图片对比,在写论文或者写文章时比较方便.VeryCaptu ...

  4. Vue框架-03:JS的几种循环方式,Key值的解释,数组/对象的检测与更新,input事件,v-model数据双向绑定,过滤案例,事件修饰符,按键修饰符,表单控制

    目录 前端开发之Vue框架 一.JS循环的几种方式 1.v-for可循环的变量 2.js的循环方式 二.Key值的解释 三.数组.对象的检测与更新 四.input事件 五.v-model双向数据绑定 ...

  5. K8S Pod Sidecar 应用场景之一-加入 NGINX Sidecar 做反代和 web 服务器

    Kubernetes Pod Sidecar 简介 Sidecar 是一个独立的容器,与 Kubernetes pod 中的应用容器一起运行,是一种辅助性的应用. Sidecar 的常见辅助性功能有这 ...

  6. U-Boot-基础概念与学习分享

    U-Boot 基础概念与学习分享 Board: rockchip-px30, armv8, Cortex-A35 U-Boot: rockchip-linux/u-boot, branch next- ...

  7. Java打印裴波那契数列

    //裴波那契数列的定义:他的第一项和第二项均为1,以后各项都为前两项的和.如: 1,1,2,3,5,8,13,21,34,55,89,144,233,~~~~ 关键代码如下: package fuxi ...

  8. LeetCode-2013 检测正方形

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/detect-squares 题目描述 给你一个在 X-Y 平面上的点构成的数据流.设计一个满足下 ...

  9. Linux系统对于实施人员的价值

    随着互联网的发展,linux系统越来越突显了巨大的作用,很多互联网公司,政府企业,只要用到服务器的地方几乎都能看到linux系统的身影,可以说服务是不是在linux系统跑的代表了企业的技术水平,而与l ...

  10. Reverse for 'blog_detail.html' not found.解决方法

    初学django遇到了以下问题: 查找解决方法的时候发现有以下几个原因: 1.字母打错 2.多加了空格 随后 我发现 报错的代码中多加了'.html'..删掉后就没问题了.