仅记录使用非零退出代码写入 EMR stderr/stdout

Ell*_*erg 5 scala amazon-emr apache-spark pyspark

我在 Scala 中有一段代码,它使用 log4j 来进行日志记录。

我有一些条件想要将一些信息记录到 EMR 的 stderr/stdout 中。

如果我有一个非零退出代码,它将记录它:

if (args.length != 2) {
  log.setLevel(Level.ERROR)
  log.error("Expecting 2 args. Usage: ...")
  System.exit(4)
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我只是定期记录它不会显示:

log.setLevel(Level.INFO)
log.info("This is my log")
Run Code Online (Sandbox Code Playgroud)

我认为这可能是因为它只在 EMR 中记录错误并尝试了以下操作:

log.setLevel(Level.ERROR)
log.error("This is my log")
Run Code Online (Sandbox Code Playgroud)

没有运气。

日志似乎只用非零退出代码写入。

我相信他们可能正在日志文件之外的某个地方写入。有什么方法可以让他们也写在我期望的地方吗?