禁用apache flink日志记录

x9ybnkn6  于 2021-06-25  发布在  Flink
关注(0)|答案(3)|浏览(447)

我使用的是ApacheFlink的旧版本,运行时2.11和FlinkCore1.1.2。由于与其他库的兼容性问题,我无法将其升级到较新的apache flink。我正在尝试禁用运行时上的节点日志记录,以最小化执行时间。我尝试使用以下代码,但消息显示为空:

Log4jLoggerAdapter logger = (Log4jLoggerAdapter)LoggerFactory
  .getLogger(JobManager.class);
Field loggerField = Log4jLoggerAdapter.class.getDeclaredField("logger");
loggerField.setAccessible(true);
Logger loggerObject = (Logger)loggerField.get(logger);

Field repoField = Category.class.getDeclaredField("repository");
repoField.setAccessible(true);
LoggerRepository repoObject = (LoggerRepository)repoField.get(loggerObject);

repoObject.setThreshold(Level.OFF);

另外,我想知道是否有一种方法可以扩展在执行计划的每个阶段中交换的消息的数量。

wd2eg0qa

wd2eg0qa1#

首先,您需要弄清楚是使用slf4j+logback还是slf4j+log4j。如果使用slf4j+log4j,则通过禁用log4j

log4j.rootLogger=OFF

否则使用slf4j+logback,然后按禁用logback

<!-- This affects logging for both user code and Flink -->
<root level="OFF">
    <appender-ref ref="file"/>
</root>
6qfn3psc

6qfn3psc2#

public static ExecutionEnvironment setupLocalEnvironment() {
     Configuration conf = new Configuration();
      env = new LocalEnvironment(conf);
      env.getConfig().disableSysoutLogging();
      return env;
}
yhived7q

yhived7q3#

你能在你的主要功能中试试这个吗:

org.apache.log4j.BasicConfigurator.configure(new NullAppender());

我对你的说法有点怀疑,但试试看。

相关问题