Flink 本地運行日誌配置

  1. 方法一: 使用 log4j.properties

    在 src/main/resources 中添加 log4j.properties 文件

    ################################################################################
    #  Licensed to the Apache Software Foundation (ASF) under one
    #  or more contributor license agreements.  See the NOTICE file
    #  distributed with this work for additional information
    #  regarding copyright ownership.  The ASF licenses this file
    #  to you under the Apache License, Version 2.0 (the
    #  "License"); you may not use this file except in compliance
    #  with the License.  You may obtain a copy of the License at
    #
    #      http://www.apache.org/licenses/LICENSE-2.0
    #
    #  Unless required by applicable law or agreed to in writing, software
    #  distributed under the License is distributed on an "AS IS" BASIS,
    #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    #  See the License for the specific language governing permissions and
    # limitations under the License.
    ################################################################################
    
    # This affects logging for both user code and Flink
    log4j.rootLogger=INFO, console
    
    # Uncomment this if you want to _only_ change Flink's logging
    log4j.logger.org.apache.flink=WARN
    
    # 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.
    log4j.logger.akka=WARN
    log4j.logger.org.apache.kafka=INFO
    log4j.logger.org.apache.hadoop=WARN
    log4j.logger.org.apache.zookeeper=WARN
    
    # Log all infos to the console
    log4j.appender.console=org.apache.log4j.ConsoleAppender
    log4j.appender.console.layout=org.apache.log4j.PatternLayout
    log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %-60c %x - %m%n
    
    # Suppress the irrelevant (wrong) warnings from the Netty channel handler
    log4j.logger.org.apache.flink.shaded.akka.org.jboss.netty.channel.DefaultChannelPipeline=ERROR, console
    
  2. 方法二: 使用 logback.xml

    在 src/main/resources 中添加 logback.xml 文件

    <!--
      ~ Licensed to the Apache Software Foundation (ASF) under one
      ~ or more contributor license agreements.  See the NOTICE file
      ~ distributed with this work for additional information
      ~ regarding copyright ownership.  The ASF licenses this file
      ~ to you under the Apache License, Version 2.0 (the
      ~ "License"); you may not use this file except in compliance
      ~ with the License.  You may obtain a copy of the License at
      ~
      ~     http://www.apache.org/licenses/LICENSE-2.0
      ~
      ~ Unless required by applicable law or agreed to in writing, software
      ~ distributed under the License is distributed on an "AS IS" BASIS,
      ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      ~ See the License for the specific language governing permissions and
      ~ limitations under the License.
      -->
    
    <configuration>
        <property name="CONSOLE_LOG_PATTERN"
                  value="%yellow(%d{yyyy-MM-dd HH:mm:ss.SSS}) [%blue(%thread)] %highlight(%-5level) %green(%logger{60}) %blue(%file:%line) %X{sourceThread} - %cyan(%msg%n)"/>
        <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
    <!--            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{60} %X{sourceThread} - %msg%n</pattern>-->
                <pattern>${CONSOLE_LOG_PATTERN}</pattern>
                <!-- 設置字符集 -->
                <charset>UTF-8</charset>
            </encoder>
        </appender>
    
        <!-- This affects logging for both user code and Flink -->
        <root level="INFO">
            <appender-ref ref="console"/>
        </root>
    
        <!-- Uncomment this if you want to only change Flink's logging -->
        <!--<logger name="org.apache.flink" level="INFO">-->
        <!--<appender-ref ref="console"/>-->
        <!--</logger>-->
    
        <!-- 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 name="akka" level="INFO">
            <appender-ref ref="console"/>
        </logger>
        <logger name="org.apache.kafka" level="INFO">
            <appender-ref ref="console"/>
        </logger>
        <logger name="org.apache.hadoop" level="INFO">
            <appender-ref ref="console"/>
        </logger>
        <logger name="org.apache.zookeeper" level="INFO">
            <appender-ref ref="console"/>
        </logger>
    
        <!-- Suppress the irrelevant (wrong) warnings from the Netty channel handler -->
        <logger name="org.apache.flink.shaded.akka.org.jboss.netty.channel.DefaultChannelPipeline" level="ERROR">
            <appender-ref ref="console"/>
        </logger>
    </configuration>
    

    修改 pom.xml 配置
    在引入flink相關依賴之前引入logback相關依賴,如下

    ...
    <properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
      <flink.version>1.9.2</flink.version>
      <flink.shade.version>3.0.0-cdh6.3.2-9.0</flink.shade.version>
      <logback.version>1.2.3</logback.version>
      <log4j-over-slf4j.version>1.7.30</log4j-over-slf4j.version>
      <scope.level>compile</scope.level>
    </properties>
    ...
    <dependencies>
      <dependency>
          <groupId>ch.qos.logback</groupId>
          <artifactId>logback-core</artifactId>
          <version>${logback.version}</version>
      </dependency>
      <dependency>
          <groupId>ch.qos.logback</groupId>
          <artifactId>logback-access</artifactId>
          <version>${logback.version}</version>
      </dependency>
      <dependency>
          <groupId>ch.qos.logback</groupId>
          <artifactId>logback-classic</artifactId>
          <version>${logback.version}</version>
      </dependency>
      <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>log4j-over-slf4j</artifactId>
          <version>${log4j-over-slf4j.version}</version>
      </dependency>
      <dependency>
          <groupId>org.apache.flink</groupId>
          <artifactId>flink-scala_${scala.binary.version}</artifactId>
          <version>${flink.version}</version>
          <scope>${scope.level}</scope>
      </dependency>
      ...
    </dependencies>
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章