Migrate all remaining eligible usages of java.util.Logger in the Bazel codebase to Flogger. A few usages are preserved because they do things like change the logger configuration, which Flogger does not easily support.
PiperOrigin-RevId: 313472123
diff --git a/src/main/java/com/google/devtools/common/options/InvocationPolicyEnforcer.java b/src/main/java/com/google/devtools/common/options/InvocationPolicyEnforcer.java
index 3b42a29..db26e64 100644
--- a/src/main/java/com/google/devtools/common/options/InvocationPolicyEnforcer.java
+++ b/src/main/java/com/google/devtools/common/options/InvocationPolicyEnforcer.java
@@ -13,12 +13,15 @@
// limitations under the License.
package com.google.devtools.common.options;
-import com.google.common.base.Joiner;
+import static java.util.stream.Collectors.joining;
+
import com.google.common.base.Verify;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Multimap;
+import com.google.common.flogger.GoogleLogger;
+import com.google.common.flogger.LazyArgs;
import com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.AllowValues;
import com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.DisallowValues;
import com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.FlagPolicy;
@@ -36,8 +39,6 @@
import java.util.Map;
import java.util.Set;
import java.util.logging.Level;
-import java.util.logging.Logger;
-import java.util.stream.Collectors;
import javax.annotation.Nullable;
/**
@@ -47,8 +48,7 @@
* <p>"Flag" and "Option" are used interchangeably in this file.
*/
public final class InvocationPolicyEnforcer {
-
- private static final Logger logger = Logger.getLogger(InvocationPolicyEnforcer.class.getName());
+ private static final GoogleLogger logger = GoogleLogger.forEnclosingClass();
private static final String INVOCATION_POLICY_SOURCE = "Invocation policy";
@Nullable private final InvocationPolicy invocationPolicy;
@@ -134,9 +134,8 @@
// This flag doesn't exist. We are deliberately lenient if the flag policy has a flag
// we don't know about. This is for better future proofing so that as new flags are added,
// new policies can use the new flags without worrying about older versions of Bazel.
- logger.log(
- loglevel,
- String.format("Flag '%s' specified by invocation policy does not exist", flagName));
+ logger.at(loglevel).log(
+ "Flag '%s' specified by invocation policy does not exist", flagName);
continue;
}
@@ -187,10 +186,9 @@
throw new PolicyOperationNotSetException(flagName);
default:
- logger.warning(
- String.format(
- "Unknown operation '%s' from invocation policy for flag '%s'",
- flagPolicy.policy.getOperationCase(), flagName));
+ logger.atWarning().log(
+ "Unknown operation '%s' from invocation policy for flag '%s'",
+ flagPolicy.policy.getOperationCase(), flagName);
break;
}
}
@@ -272,11 +270,9 @@
if (optionDescription == null) {
// InvocationPolicy ignores policy on non-existing flags by design, for version
// compatibility.
- logger.log(
- loglevel,
- String.format(
- "Flag '%s' specified by invocation policy does not exist, and will be ignored",
- policy.getFlagName()));
+ logger.at(loglevel).log(
+ "Flag '%s' specified by invocation policy does not exist, and will be ignored",
+ policy.getFlagName());
continue;
}
FlagPolicyWithContext policyWithContext =
@@ -329,25 +325,17 @@
return ImmutableList.of(originalPolicy);
}
- if (logger.isLoggable(loglevel)) {
- // Log the expansion. This is only really useful for understanding the invocation policy
- // itself.
- List<String> subflagNames = new ArrayList<>(subflags.size());
- for (ParsedOptionDescription subflag : subflags) {
- subflagNames.add("--" + subflag.getOptionDefinition().getOptionName());
- }
-
- logger.logp(
- loglevel,
- "InvocationPolicyEnforcer",
- "expandPolicy",
- String.format(
- "Expanding %s on option %s to its %s: %s.",
- originalPolicy.policy.getOperationCase(),
- originalPolicy.policy.getFlagName(),
- isExpansion ? "expansions" : "implied flags",
- Joiner.on("; ").join(subflagNames)));
- }
+ // Log the expansion. This is only really useful for understanding the invocation policy itself.
+ logger.at(loglevel).log(
+ "Expanding %s on option %s to its %s: %s.",
+ originalPolicy.policy.getOperationCase(),
+ originalPolicy.policy.getFlagName(),
+ isExpansion ? "expansions" : "implied flags",
+ LazyArgs.lazy(
+ () ->
+ subflags.stream()
+ .map(f -> "--" + f.getOptionDefinition().getOptionName())
+ .collect(joining("; "))));
// Repeated flags are special, and could set multiple times in an expansion, with the user
// expecting both values to be valid. Collect these separately.
@@ -392,11 +380,10 @@
OptionInstanceOrigin originOfSubflags =
new OptionInstanceOrigin(
arbitraryFirstOptionOrigin.getPriority(),
- origins
- .stream()
+ origins.stream()
.map(OptionInstanceOrigin::getSource)
.distinct()
- .collect(Collectors.joining(", ")),
+ .collect(joining(", ")),
arbitraryFirstOptionOrigin.getImplicitDependent(),
arbitraryFirstOptionOrigin.getExpandedFrom());
expandedPolicies.add(
@@ -529,17 +516,6 @@
return subflagAsPolicy;
}
- private static void logInApplySetValueOperation(
- Level loglevel, String formattingString, Object... objects) {
- // Finding the caller here is relatively expensive and shows up in profiling, so provide it
- // manually.
- logger.logp(
- loglevel,
- "InvocationPolicyEnforcer",
- "applySetValueOperation",
- String.format(formattingString, objects));
- }
-
private static void applySetValueOperation(
OptionsParser parser,
FlagPolicyWithContext flagPolicy,
@@ -570,8 +546,7 @@
if (setValue.getOverridable() && valueDescription != null) {
// The user set the value for the flag but the flag policy is overridable, so keep the user's
// value.
- logInApplySetValueOperation(
- loglevel,
+ logger.at(loglevel).log(
"Keeping value '%s' from source '%s' for %s because the invocation policy specifying "
+ "the value(s) '%s' is overridable",
valueDescription.getValue(),
@@ -588,16 +563,12 @@
// Set all the flag values from the policy.
for (String flagValue : setValue.getFlagValueList()) {
if (valueDescription == null) {
- logInApplySetValueOperation(
- loglevel,
+ logger.at(loglevel).log(
"Setting value for %s from invocation policy to '%s', overriding the default value "
+ "'%s'",
- optionDefinition,
- flagValue,
- optionDefinition.getDefaultValue());
+ optionDefinition, flagValue, optionDefinition.getDefaultValue());
} else {
- logInApplySetValueOperation(
- loglevel,
+ logger.at(loglevel).log(
"Setting value for %s from invocation policy to '%s', overriding value '%s' from "
+ "'%s'",
optionDefinition,
@@ -620,16 +591,14 @@
String clearedFlagName = clearedValueDescription.getOptionDefinition().getOptionName();
Object clearedFlagDefaultValue =
clearedValueDescription.getOptionDefinition().getDefaultValue();
- logger.log(
- loglevel,
- String.format(
- "Using default value '%s' for flag '%s' as specified by %s invocation policy, "
- + "overriding original value '%s' from '%s'",
- clearedFlagDefaultValue,
- clearedFlagName,
- policyType,
- clearedValueDescription.getValue(),
- clearedValueDescription.getSourceString()));
+ logger.at(loglevel).log(
+ "Using default value '%s' for flag '%s' as specified by %s invocation policy, "
+ + "overriding original value '%s' from '%s'",
+ clearedFlagDefaultValue,
+ clearedFlagName,
+ policyType,
+ clearedValueDescription.getValue(),
+ clearedValueDescription.getSourceString());
}
}
@@ -768,16 +737,14 @@
} else if (!isFlagValueAllowed(convertedPolicyValues, optionDefinition.getDefaultValue())) {
if (newValue != null) {
// Use the default value from the policy, since the original default is not allowed
- logger.log(
- loglevel,
- String.format(
- "Overriding default value '%s' for %s with value '%s' specified by invocation "
- + "policy. %sed values are: %s",
- optionDefinition.getDefaultValue(),
- optionDefinition,
- newValue,
- policyType,
- policyValues));
+ logger.at(loglevel).log(
+ "Overriding default value '%s' for %s with value '%s' specified by invocation "
+ + "policy. %sed values are: %s",
+ optionDefinition.getDefaultValue(),
+ optionDefinition,
+ newValue,
+ policyType,
+ policyValues);
parser.clearValue(optionDefinition);
parser.addOptionValueAtSpecificPriority(origin, optionDefinition, newValue);
} else {
@@ -827,12 +794,10 @@
if (!isFlagValueAllowed(convertedPolicyValues, valueDescription.getValue())) {
if (newValue != null) {
- logger.log(
- loglevel,
- String.format(
- "Overriding disallowed value '%s' for %s with value '%s' "
- + "specified by invocation policy. %sed values are: %s",
- valueDescription.getValue(), option, newValue, policyType, policyValues));
+ logger.at(loglevel).log(
+ "Overriding disallowed value '%s' for %s with value '%s' "
+ + "specified by invocation policy. %sed values are: %s",
+ valueDescription.getValue(), option, newValue, policyType, policyValues);
parser.clearValue(option);
parser.addOptionValueAtSpecificPriority(origin, option, newValue);
} else if (useDefault) {