System.err への書き込みが、GCP ロギングのエラー レベルのロギング イベントにマップされていることがわかります。これらを警告レベルなどの別のログ レベルにマップする方法はありますか?
私たちのコードでは、常に SLF4J ロガーに書き込みますが、残念ながら System.err に書き込み、例外をスローするサードパーティのライブラリを使用しています。例外があるため、System.err をエラーとしてログに記録したくありません。
更新: Dataflow には com.google.cloud.dataflow.sdk.runners.worker.logging.DataflowWorkerLoggingInitializer クラスがあり、必要に応じて stdout と stderr を構成できるように見えます。削除された理由を知っている人はいますか?
コマンドラインオプションを使用して構成しました:
--workerLogLevelOverrides={\"System.err":\"WARN\",\"System.out\":\"DEBUG\"} 
または、次のコード:
    /**
 * Maps the "System.err" and "System.out" loggers to desired levels.
 * Note: the "System.err" and "System.out" logger are not currently part of the specification as of v1.5.1, 
 * so this is dependent on the current implementation of com.google.cloud.dataflow.sdk.runners.worker.logging.DataflowWorkerLoggingInitializer
 * which does configure those loggers.
 * @param options
 */
public static void setupSystemOutAndErrLogging(DataflowWorkerLoggingOptions options) {
    WorkerLogLevelOverrides overrides = options.getWorkerLogLevelOverrides();
    if ( overrides == null ) {
        overrides = new WorkerLogLevelOverrides();
    }
    options.setWorkerLogLevelOverrides(
            overrides.addOverrideForName("System.err", Level.WARN)
                    .addOverrideForName("System.out", Level.DEBUG));
}