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

flink1.17 日志文件大小哪里控制得?

flink1.17 日志文件大小哪里控制得?谁有log4j配置 发一份出来 lQLPJwl2vdfaKiQvzQHXsKH3qk-7oXbcBTgBBkmAtQA_471_47.png
几分钟就10几个g

展开
收起
三分钟热度的鱼 2023-11-08 21:29:31 303 0
4 条回答
写回答
取消 提交回答
  • 在 Flink 中,可以通过修改 conf/log4j.properties 文件来配置日志的输出格式和文件大小。下面是一份基本的 log4j 配置示例:

    # Global logging configuration
    log4j.rootLogger=INFO, console
    
    # Direct log messages to stdout and stderr
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.Target=System.out
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
    
    log4j.appender.stderr=org.apache.log4j.ConsoleAppender
    log4j.appender.stderr.Target=System.err
    log4j.appender.stderr.layout=org.apache.log4j.PatternLayout
    log4j.appender.stderr.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
    
    # Configure file appender for JobManager log files.
    log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.file.File=${LOG_DIR}/jobmanager.log
    log4j.appender.file.DatePattern='.'yyyy-MM-dd-HH
    log4j.appender.file.Append=true
    log4j.appender.file.Threshold=ALL
    log4j.appender.file.layout=org.apache.log4j.PatternLayout
    log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
    
    # Configure file appender for TaskManager log files.
    log4j.appender.taskmanager.file=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.taskmanager.file.File=${LOG_DIR}/taskmanager.log
    log4j.appender.taskmanager.file.DatePattern='.'yyyy-MM-dd-HH
    log4j.appender.taskmanager.file.Append=true
    log4j.appender.taskmanager.file.Threshold=ALL
    log4j.appender.taskmanager.file.layout=org.apache.log4j.PatternLayout
    log4j.appender.taskmanager.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
    

    在这个配置中,可以通过修改 ${LOG_DIR} 变量来设置日志文件的存储路径。另外,也可以通过修改 log4j.appender.file.MaxFileSizelog4j.appender.taskmanager.file.MaxFileSize 参数来限制日志文件的大小。
    注意:Flink 不会自动删除过期的日志文件,需要定期清理旧的日志文件以防止磁盘空间耗尽。

    2023-11-09 21:53:10
    赞同 1 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    Flink 使用 Logback 作为日志框架,因此您可以通过修改 Logback 配置文件来控制日志文件的大小。以下是一个基本的 Logback 配置文件示例,用于限制日志文件的大小:

    1. 首先,打开 flink-conf.yaml 文件,并增加 logback.xml 文件的位置。
    logging.file.path: /path/to/logback.xml
    
    1. 然后,创建一个新的 logback.xml 文件,如下所示:
    <configuration>
      <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
          <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
      </appender>
    
      <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>/path/to/taskmanager.log</file>
        <append>true</append>
        <encoder>
          <pattern>%date %level %logger{10} - %message%n</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
          <fileNamePattern>/path/to/taskmanager.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
          <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <maxFileSize>50MB</maxFileSize> <!-- 日志大小 -->
          </timeBasedFileNamingAndTriggeringPolicy>
          <totalSizeCap>1GB</totalSizeCap> <!-- 最大日志总大小 -->
        </rollingPolicy>
      </appender>
    
      <root level="info">
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="FILE"/>
      </root>
    </configuration>
    
    2023-11-09 13:12:32
    赞同 展开评论 打赏
  • 在Flink中,日志文件的大小可以通过log4j的配置来控制。log4j是Apache的一个开源项目,它是一个用Java编写的强大的日志记录框架。Flink使用log4j来记录日志,因此可以通过修改log4j的配置文件来控制日志文件的大小。

    下面是一个示例的log4j配置文件,可以限制日志文件的大小:

    <?xml version="1.0" encoding="UTF-8"?>
    <Configuration status="WARN">
        <Appenders>
            <RollingFile name="file" fileName="logs/flink.log" filePattern="logs/flink-%d{yyyy-MM-dd}-%i.log.gz">
                <PatternLayout>
                    <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n</pattern>
                </PatternLayout>
                <Policies>
                    <SizeBasedTriggeringPolicy size="10 MB" />
                </Policies>
                <DefaultRolloverStrategy max="10" />
            </RollingFile>
        </Appenders>
        <Loggers>
            <Root level="info">
                <AppenderRef ref="file" />
            </Root>
        </Loggers>
    </Configuration>
    

    在这个配置中,SizeBasedTriggeringPolicy用于指定日志文件的大小,size属性设置为"10 MB",表示当日志文件大小达到10 MB时,将会创建一个新的日志文件。DefaultRolloverStrategy用于指定日志文件的最大数量,max属性设置为"10",表示最多保留10个日志文件。

    你可以将这个配置文件保存为log4j.propertieslog4j.xml,然后将其放置在Flink的类路径下,例如$FLINK_HOME/conf/目录下。在Flink启动时,将会自动加载这个配置文件,并按照指定的方式记录日志。

    2023-11-09 09:56:23
    赞同 展开评论 打赏
  • JobManager 和 TaskManager 日志输出在同一个文件中。jm 和 tm 上用的 log 配置都依赖于 flink/conf/log4j.properties 配置文件。

    如下配置将滚动日志设置为最大5m,最多10个文件。

    # 滚动日志的配置
    # This affects logging for both user code and Flink
    rootLogger.level = DEBUG
    rootLogger.appenderRef.rolling.ref = RollingFileAppender
    
    # Uncomment this if you want to _only_ change Flink's logging
    #logger.flink.name = org.apache.flink
    #logger.flink.level = INFO
    
    # The following lines keep the log level of common libraries/connectors on
    # log level INFO. The root logger does not override this. You have to manually
    # change the log levels here.
    logger.akka.name = akka
    logger.akka.level = INFO
    logger.kafka.name= org.apache.kafka
    logger.kafka.level = INFO
    logger.hadoop.name = org.apache.hadoop
    logger.hadoop.level = INFO
    logger.zookeeper.name = org.apache.zookeeper
    logger.zookeeper.level = INFO
    
    # Log all infos in the given rolling file
    appender.rolling.name = RollingFileAppender
    appender.rolling.type = RollingFile
    appender.rolling.append = false
    #日志文件名
    appender.rolling.fileName = ${sys:log.file}
    #指定当发生文件滚动时,文件重命名规则
    appender.rolling.filePattern = ${sys:log.file}.%i
    appender.rolling.layout.type = PatternLayout
    # 输出模板
    appender.rolling.layout.pattern = %d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %-60c %x - %m%n
    # 指定记录文件的保存策略,该策略主要是完成周期性的日志文件保存工作
    appender.rolling.policies.type = Policies
    # 基于日志文件大小的触发策略
    appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
    # 当日志文件大小大于size指定的值时,触发滚动
    appender.rolling.policies.size.size = 5MB
    # 文件保存的覆盖策略
    appender.rolling.strategy.type = DefaultRolloverStrategy
    # 生成分割(保存)文件的个数,默认为5(-1,-2,-3,-4,-5)
    appender.rolling.strategy.max = 10
    
    # Suppress the irrelevant (wrong) warnings from the Netty channel handler
    logger.netty.name = org.apache.flink.shaded.akka.org.jboss.netty.channel.DefaultChannelPipeline
    logger.netty.level = OFF
    
    2023-11-09 07:54:48
    赞同 展开评论 打赏

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

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载