diff options
author | ccalvarin <ccalvarin@google.com> | 2017-04-05 15:18:51 +0000 |
---|---|---|
committer | Marcel Hlopko <hlopko@google.com> | 2017-04-06 11:00:01 +0200 |
commit | 36109fc44c884e14589b07a7c1d36e33076ca2e5 (patch) | |
tree | b5ec605b72a5e99e77d5a70ad1172766bf8076b2 /src/main/java/com/google/devtools/build/lib | |
parent | af64b3e95dca1819ad8e661212d41b0356c7f891 (diff) |
Log the expansion step in invocation policy.
This is only useful for debugging invocation policy itself, not as much for understanding its effect on a user command line, so this log statement will only occur at log levels fine and higher.
PiperOrigin-RevId: 152259362
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/flags/InvocationPolicyEnforcer.java | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/flags/InvocationPolicyEnforcer.java b/src/main/java/com/google/devtools/build/lib/flags/InvocationPolicyEnforcer.java index 7e512c1b9c..a01ecd7077 100644 --- a/src/main/java/com/google/devtools/build/lib/flags/InvocationPolicyEnforcer.java +++ b/src/main/java/com/google/devtools/build/lib/flags/InvocationPolicyEnforcer.java @@ -15,6 +15,7 @@ package com.google.devtools.build.lib.flags; import com.google.common.base.Function; import com.google.common.base.Functions; +import com.google.common.base.Joiner; import com.google.common.base.Verify; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; @@ -235,6 +236,26 @@ public final class InvocationPolicyEnforcer { .build(); boolean isExpansion = !desc.getExpansions().isEmpty(); + if (!subflags.isEmpty() && log.isLoggable(Level.FINE)) { + // Log the expansion. Since this is logged regardless of user provided command line, it is + // only really useful for understanding the invocation policy itself. Most of the time, + // invocation policy does not change, so this can be a log level fine. + List<String> subflagNames = new ArrayList<>(subflags.size()); + for (OptionValueDescription subflag : subflags) { + subflagNames.add("--" + subflag.getName()); + } + + log.logp(Level.FINE, + "InvocationPolicyEnforcer", + "expandPolicy", + String.format( + "Expanding %s on option %s to its %s: %s.", + originalPolicy.getOperationCase(), + originalPolicy.getFlagName(), + isExpansion ? "expansions" : "implied flags", + Joiner.on("; ").join(subflagNames))); + } + // Create a flag policy for the child that looks like the parent's policy "transferred" to its // child. Note that this only makes sense for SetValue, when setting an expansion flag, or // UseDefault, when preventing it from being set. |