Adding stable sorting for execlog

RELNOTES: Introducing --execution_log_binary_file and --execution_log_json_file that output a stable sorted execution log. They will offer a stable replacement to --experimental_execution_log_file.
PiperOrigin-RevId: 243808737
diff --git a/src/main/java/com/google/devtools/build/lib/exec/ExecutionOptions.java b/src/main/java/com/google/devtools/build/lib/exec/ExecutionOptions.java
index 3247b924..843178d 100644
--- a/src/main/java/com/google/devtools/build/lib/exec/ExecutionOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/exec/ExecutionOptions.java
@@ -436,14 +436,36 @@
   public boolean statsSummary;
 
   @Option(
-    name = "experimental_execution_log_file",
-    defaultValue = "",
-    category = "verbosity",
-    documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
-    effectTags = {OptionEffectTag.UNKNOWN},
-    help = "Log the executed spawns into this file as delimited Spawn protos."
-  )
-  public String executionLogFile;
+      name = "experimental_execution_log_file",
+      defaultValue = "null",
+      category = "verbosity",
+      documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+      effectTags = {OptionEffectTag.UNKNOWN},
+      converter = OptionsUtils.PathFragmentConverter.class,
+      help = "Log the executed spawns into this file as delimited Spawn protos.")
+  public PathFragment executionLogFile;
+
+  @Option(
+      name = "execution_log_binary_file",
+      defaultValue = "null",
+      category = "verbosity",
+      documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+      effectTags = {OptionEffectTag.UNKNOWN},
+      converter = OptionsUtils.PathFragmentConverter.class,
+      help = "Log the executed spawns into this file as delimited Spawn protos.")
+  public PathFragment executionLogBinaryFile;
+
+  @Option(
+      name = "execution_log_json_file",
+      defaultValue = "null",
+      category = "verbosity",
+      documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+      effectTags = {OptionEffectTag.UNKNOWN},
+      converter = OptionsUtils.PathFragmentConverter.class,
+      help =
+          "Log the executed spawns into this file as json representation of the delimited Spawn"
+              + " protos.")
+  public PathFragment executionLogJsonFile;
 
   @Option(
       name = "experimental_split_xml_generation",