【问题标题】:Limit output with scala on IntelliJ在 IntelliJ 上使用 scala 限制输出
【发布时间】:2018-03-28 15:23:05
【问题描述】:

我正在为 Scala 使用 IntelliJ IDEA。当我编写一段 Scala 代码时,我会构建项目并执行它。在intellij的底部窗口可以看到代码正在运行。

在下面的输出窗口中,我将得到一行输出,如下所示:

18/03/27 15:07:31 INFO SparkContext:从 LogisticRegression.scala:1879 的广播创建广播 132

全部为红色文本。红色文本中有数百行输出。 我只对看到白色文本感兴趣。例如:

println("My white text") 

如何在 intellij 中隐藏这些信息过度杀伤力? 底部的输出窗口中有太多信息。 intellij 中有哪些选项可以减少输出内容?

我知道,如果我正在调试并寻找有关为什么某些东西不工作的答案,这些信息会很有用。 但就目前而言,它完全碍事且烦人。

任何帮助都会很棒。

【问题讨论】:

标签: scala intellij-idea


【解决方案1】:

好像你在用spark,如果是这样你可以设置log level

import org.apache.log4j.Level
import org.apache.log4j.{Level, Logger}

Logger.getLogger("org").setLevel(Level.OFF)
Logger.getLogger("akka").setLevel(Level.OFF)

或者在你的 spark 文件夹中找到 conf/log4j.properties 并将 log4j.rootCategory 更新为

log4j.rootCategory=INFO, console

希望对你有帮助

【讨论】:

  • 将日志记录级别编码到应用程序中并不是一个好主意,因为它需要重新部署才能更改这些设置。
  • 是的,没错,但是从 ide 运行小型 spark 程序进行测试不会有任何问题。
  • 我找到了一个名为:log4j.properties.template 的文件我要不要把它的名字改成别的名字?
  • 是的,把文件名改成log4j.properties
  • 似乎大幅减少了出现的红色消息的数量。它现在更易于管理。我认为问题出在 IntelliJ 上,但事实并非如此。它显然是在向 spark 提供信息,窗口中显示的内容来自本地安装的 spark,因此是 java。
【解决方案2】:

这是您在程序中包含的依赖项所使用的日志框架的功能。

Spark 使用 log4j 来记录,详情请看:https://spark.apache.org/docs/latest/configuration.html#configuring-logging

基本上,您需要使用 log4j.prooerties 文件告诉记录器要打印哪些消息。

【讨论】:

    猜你喜欢
    • 2017-08-28
    • 1970-01-01
    • 2018-08-03
    • 1970-01-01
    • 2020-11-14
    • 2021-09-19
    • 2012-06-05
    • 2019-07-19
    • 2013-12-21
    相关资源
    最近更新 更多