开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

请问flinkcdc中我这个程序一直刷日志,怎么才能在idea控制台只打印变化数据?

7a906601ec5cf10dc180ad0b40fdd1de.png
请问flinkcdc中我这个程序一直刷日志,怎么才能在idea控制台只打印变化数据?

展开
收起
十一0204 2023-07-19 17:31:33 425 0
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    在 Flink CDC 中,程序一直刷日志的原因可能是由于程序输出了过多的日志信息。为了只打印变化数据,可以通过以下方法来减少程序输出的日志信息:
    设置 Log4j 日志级别
    在 Flink CDC 中,可以通过设置 Log4j 的日志级别来控制程序输出的日志信息。可以将 Log4j 的日志级别设置为 WARN 或 ERROR 级别,这样就只会输出 WARN 或 ERROR 级别的日志信息,从而减少程序输出的日志信息。
    在使用 IDEA 运行 Flink CDC 程序时,可以通过在 log4j.properties 文件中设置日志级别来控制程序输出的日志信息。例如,可以将日志级别设置为 WARN,只输出 WARN 级别和 ERROR 级别的日志信息:
    Copy
    log4j.rootLogger=WARN, console
    使用 Flink 日志级别控制
    在 Flink CDC 中,还可以通过设置 Flink 的日志级别来控制程序输出的日志信息。可以将 Flink 的日志级别设置为 WARN 或 ERROR 级别,这样就只会输出 WARN 或 ERROR级别的日志信息,从而减少程序输出的日志信息。
    在使用 IDEA 运行 Flink CDC 程序时,可以在程序中使用 Flink 的 Logger 来输出日志信息,并通过设置日志级别来控制输出的日志信息。例如,在程序中使用以下代码来输出日志信息:
    stylus
    Copy
    import org.apache.flink.api.common.functions.MapFunction;
    import org.apache.flink.api.java.utils.ParameterTool;
    import org.apache.flink.streaming.api.datastream.DataStream;
    import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
    import org.apache.flink.streaming.connectors.kafka.FlinkKafkaConsumer;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;

    public class FlinkCDCExample {
    private static final Logger LOG = LoggerFactory.getLogger(FlinkCDCExample.class);

    public static void main(String[] args) throws Exception {
        // 获取参数
        ParameterTool parameterTool = ParameterTool.fromArgs(args);
    
        // 创建执行环境
        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
    
        // 创建 Kafka 数据流
        DataStream<String> kafkaStream = env.addSource(new FlinkKafkaConsumer<>(parameterTool.getRequired("topic"), new SimpleStringSchema(), parameterTool.getProperties()));
    
        // 处理数据流
        kafkaStream.map(new MapFunction<String, String>() {
            @Override
            public String map(String value) throws Exception {
                LOG.info("Received message: {}", value);
                return value;
            }
        });
    
        // 执行程序
        env.execute("Flink CDC Example");
    }
    

    }
    在程序中,使用 slf4j 的 Logger 来输出日志信息,通过设置日志级别来控制输出的日志信息。可以将日志级别设置为 WARN 或 ERROR 级别,只输出 WARN 或 ERROR 级别的日志信息。例如,可以将日志级别设置为 WARN,只输出 WARN 级别和 ERROR 级别的日志信息:
    Copy
    log4j.logger.org.apache.flink=WARN, console

    2023-07-29 20:11:58
    赞同 展开评论 打赏
  • 意中人就是我呀!

    这是日志问题呀,只打印error日志就行了,info不打印。此回答整理至钉群“Flink CDC 社区”。

    2023-07-19 18:41:19
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关电子书

更多
大规模日志数据平台架构面临的问题与挑战 立即下载
PostgresChina2018_赖思超_PostgreSQL10_hash索引的WAL日志修改版final 立即下载
DTS控制台一本通 立即下载