Skip to content

Commit 598d5b9

Browse files
committed
logging util class refactor.
1 parent 44f3de8 commit 598d5b9

File tree

9 files changed

+69
-60
lines changed

9 files changed

+69
-60
lines changed

oauth2_http/java/com/google/auth/oauth2/ComputeEngineCredentials.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ public class ComputeEngineCredentials extends GoogleCredentials
9393

9494
private static final Logger LOGGER = Logger.getLogger(ComputeEngineCredentials.class.getName());
9595
private static final org.slf4j.Logger SLF4JLOGGER =
96-
LoggingUtils.getLogger(ComputeEngineCredentials.class);
96+
LoggingConfigs.getLogger(ComputeEngineCredentials.class);
9797

9898
static final String DEFAULT_METADATA_SERVER_URL = "http://metadata.google.internal";
9999

oauth2_http/java/com/google/auth/oauth2/IamUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ class IamUtils {
6969
"https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/%s:generateIdToken";
7070
private static final String PARSE_ERROR_MESSAGE = "Error parsing error message response. ";
7171
private static final String PARSE_ERROR_SIGNATURE = "Error parsing signature response. ";
72-
private static final Logger LOGGER = LoggingUtils.getLogger(IamUtils.class);
72+
private static final Logger LOGGER = LoggingConfigs.getLogger(IamUtils.class);
7373

7474
// Following guidance for IAM retries:
7575
// https://cloud.google.com/iam/docs/retry-strategy#errors-to-retry

oauth2_http/java/com/google/auth/oauth2/ImpersonatedCredentials.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ public class ImpersonatedCredentials extends GoogleCredentials
111111
private int lifetime;
112112
private String iamEndpointOverride;
113113
private final String transportFactoryClassName;
114-
private static final Logger LOGGER = LoggingUtils.getLogger(ImpersonatedCredentials.class);
114+
private static final Logger LOGGER = LoggingConfigs.getLogger(ImpersonatedCredentials.class);
115115

116116
private transient HttpTransportFactory transportFactory;
117117

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package com.google.auth.oauth2;
2+
3+
import org.slf4j.ILoggerFactory;
4+
import org.slf4j.Logger;
5+
import org.slf4j.LoggerFactory;
6+
7+
class LoggingConfigs {
8+
9+
private static EnvironmentProvider environmentProvider = SystemEnvironmentProvider.getInstance();
10+
private static final Logger NO_OP_LOGGER = org.slf4j.helpers.NOPLogger.NOP_LOGGER;
11+
private static final boolean LOGGING_ENABLED = isLoggingEnabled();
12+
// expose this setter for testing purposes
13+
static void setEnvironmentProvider(EnvironmentProvider provider) {
14+
environmentProvider = provider;
15+
}
16+
17+
private LoggingConfigs() {}
18+
19+
static Logger getLogger(Class<?> clazz) {
20+
return getLogger(clazz, new DefaultLoggerFactoryProvider());
21+
}
22+
23+
// constructor with LoggerFactoryProvider to make testing easier
24+
static Logger getLogger(Class<?> clazz, LoggerFactoryProvider factoryProvider) {
25+
if (LOGGING_ENABLED) {
26+
return factoryProvider.getLoggerFactory().getLogger(clazz.getName());
27+
} else {
28+
// use SLF4j's NOP logger regardless of bindings
29+
return NO_OP_LOGGER;
30+
}
31+
}
32+
33+
static boolean isLoggingEnabled() {
34+
String enableLogging = environmentProvider.getEnv("GOOGLE_SDK_JAVA_LOGGING");
35+
return "true".equalsIgnoreCase(enableLogging);
36+
}
37+
38+
interface LoggerFactoryProvider {
39+
ILoggerFactory getLoggerFactory();
40+
}
41+
42+
static class DefaultLoggerFactoryProvider implements LoggerFactoryProvider {
43+
@Override
44+
public ILoggerFactory getLoggerFactory() {
45+
return LoggerFactory.getILoggerFactory();
46+
}
47+
}
48+
}

oauth2_http/java/com/google/auth/oauth2/LoggingUtils.java

Lines changed: 4 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -9,52 +9,13 @@
99
import java.security.NoSuchAlgorithmException;
1010
import java.util.HashMap;
1111
import java.util.Map;
12-
import org.slf4j.ILoggerFactory;
1312
import org.slf4j.Logger;
14-
import org.slf4j.LoggerFactory;
1513
import org.slf4j.MDC;
1614

1715
class LoggingUtils {
1816

19-
private static EnvironmentProvider environmentProvider = SystemEnvironmentProvider.getInstance();
20-
private static final Logger NO_OP_LOGGER = org.slf4j.helpers.NOPLogger.NOP_LOGGER;
21-
22-
// expose this setter for testing purposes
23-
static void setEnvironmentProvider(EnvironmentProvider provider) {
24-
environmentProvider = provider;
25-
}
26-
2717
private LoggingUtils() {}
2818

29-
interface LoggerFactoryProvider {
30-
ILoggerFactory getLoggerFactory();
31-
}
32-
33-
static class DefaultLoggerFactoryProvider implements LoggerFactoryProvider {
34-
@Override
35-
public ILoggerFactory getLoggerFactory() {
36-
return LoggerFactory.getILoggerFactory();
37-
}
38-
}
39-
40-
static Logger getLogger(Class<?> clazz) {
41-
return getLogger(clazz, new DefaultLoggerFactoryProvider());
42-
}
43-
44-
// constructor with LoggerFactoryProvider to make testing easier
45-
static Logger getLogger(Class<?> clazz, LoggerFactoryProvider factoryProvider) {
46-
if (!isLoggingEnabled()) {
47-
// use SLF4j's NOP logger regardless of bindings
48-
return NO_OP_LOGGER;
49-
}
50-
return factoryProvider.getLoggerFactory().getLogger(clazz.getName());
51-
}
52-
53-
static boolean isLoggingEnabled() {
54-
String enableLogging = environmentProvider.getEnv("GOOGLE_SDK_JAVA_LOGGING");
55-
return "true".equalsIgnoreCase(enableLogging);
56-
}
57-
5819
static void logWithMDC(
5920
Logger logger, org.slf4j.event.Level level, Map<String, String> contextMap, String message) {
6021
contextMap.forEach(MDC::put);
@@ -109,10 +70,10 @@ static void logRequest(HttpRequest request, Logger logger, String message) {
10970
Map<String, String> contextMap = parseGenericData(data);
11071
loggingDataMap.put("request.payload", contextMap.toString());
11172

112-
LoggingUtils.logWithMDC(logger, org.slf4j.event.Level.DEBUG, loggingDataMap, message);
73+
logWithMDC(logger, org.slf4j.event.Level.DEBUG, loggingDataMap, message);
11374
} else {
11475

115-
LoggingUtils.logWithMDC(logger, org.slf4j.event.Level.INFO, loggingDataMap, message);
76+
logWithMDC(logger, org.slf4j.event.Level.INFO, loggingDataMap, message);
11677
}
11778
} catch (Exception e) {
11879
logger.error("Error logging request: ", e);
@@ -130,7 +91,7 @@ static void logResponse(HttpResponse response, Logger logger, String message) {
13091
Map<String, Object> headers = new HashMap<>();
13192
response.getHeaders().forEach((key, val) -> headers.put(key, val));
13293
responseLogDataMap.put("response.headers", headers.toString());
133-
LoggingUtils.logWithMDC(logger, org.slf4j.event.Level.INFO, responseLogDataMap, message);
94+
logWithMDC(logger, org.slf4j.event.Level.INFO, responseLogDataMap, message);
13495
} catch (Exception e) {
13596

13697
logger.error("Error logging response: ", e);
@@ -143,7 +104,7 @@ static void logGenericData(GenericData genericData, Logger logger, String messag
143104
try {
144105

145106
Map<String, String> contextMap = parseGenericData(genericData);
146-
LoggingUtils.logWithMDC(logger, org.slf4j.event.Level.DEBUG, contextMap, message);
107+
logWithMDC(logger, org.slf4j.event.Level.DEBUG, contextMap, message);
147108
} catch (Exception e) {
148109
logger.error("Error logging GenericData: ", e);
149110
}

oauth2_http/java/com/google/auth/oauth2/ServiceAccountCredentials.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ public class ServiceAccountCredentials extends GoogleCredentials
9797
private static final String PARSE_ERROR_PREFIX = "Error parsing token refresh response. ";
9898
private static final int TWELVE_HOURS_IN_SECONDS = 43200;
9999
private static final int DEFAULT_LIFETIME_IN_SECONDS = 3600;
100-
private static final Logger LOGGER = LoggingUtils.getLogger(ServiceAccountCredentials.class);
100+
private static final Logger LOGGER = LoggingConfigs.getLogger(ServiceAccountCredentials.class);
101101

102102
private final String clientId;
103103
private final String clientEmail;

oauth2_http/java/com/google/auth/oauth2/UserCredentials.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ public class UserCredentials extends GoogleCredentials implements IdTokenProvide
6969
private static final String GRANT_TYPE = "refresh_token";
7070
private static final String PARSE_ERROR_PREFIX = "Error parsing token refresh response. ";
7171
private static final long serialVersionUID = -4800758775038679176L;
72-
private static final Logger LOGGER = LoggingUtils.getLogger(UserCredentials.class);
72+
private static final Logger LOGGER = LoggingConfigs.getLogger(UserCredentials.class);
7373

7474
private final String clientId;
7575
private final String clientSecret;

oauth2_http/javatests/com/google/auth/oauth2/LoggingUtilsTest.java renamed to oauth2_http/javatests/com/google/auth/oauth2/LoggingConfigsTest.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
import ch.qos.logback.classic.spi.ILoggingEvent;
1414
import ch.qos.logback.core.ConsoleAppender;
1515
import com.google.auth.TestAppender;
16-
import com.google.auth.oauth2.LoggingUtils.LoggerFactoryProvider;
16+
import com.google.auth.oauth2.LoggingConfigs.LoggerFactoryProvider;
1717
import java.util.HashMap;
1818
import java.util.Map;
1919
import org.junit.After;
@@ -24,16 +24,16 @@
2424
import org.slf4j.LoggerFactory;
2525
import org.slf4j.helpers.NOPLogger;
2626

27-
public class LoggingUtilsTest {
27+
public class LoggingConfigsTest {
2828

29-
private static final Logger LOGGER = LoggerFactory.getLogger(LoggingUtilsTest.class);
29+
private static final Logger LOGGER = LoggerFactory.getLogger(LoggingConfigsTest.class);
3030

3131
private TestEnvironmentProvider testEnvironmentProvider;
3232

3333
@Before
3434
public void setup() {
3535
testEnvironmentProvider = new TestEnvironmentProvider();
36-
LoggingUtils.setEnvironmentProvider(testEnvironmentProvider);
36+
LoggingConfigs.setEnvironmentProvider(testEnvironmentProvider);
3737

3838
// need to setup a ConsoleAppender and attach to root logger because TestAppender
3939
// does not correctly capture MDC info
@@ -66,7 +66,7 @@ public void tearDown() {
6666
@Test
6767
public void testGetLogger_loggingEnabled_slf4jBindingPresent() {
6868
testEnvironmentProvider.setEnv("GOOGLE_SDK_JAVA_LOGGING", "true");
69-
Logger logger = LoggingUtils.getLogger(LoggingUtilsTest.class);
69+
Logger logger = LoggingConfigs.getLogger(LoggingConfigsTest.class);
7070
assertTrue(logger instanceof org.slf4j.Logger);
7171
assertNotEquals(logger.getClass(), NOPLogger.class);
7272
}
@@ -75,7 +75,7 @@ public void testGetLogger_loggingEnabled_slf4jBindingPresent() {
7575
public void testGetLogger_loggingDisabled() {
7676
testEnvironmentProvider.setEnv("GOOGLE_SDK_JAVA_LOGGING", "false");
7777

78-
Logger logger = LoggingUtils.getLogger(LoggingUtilsTest.class);
78+
Logger logger = LoggingConfigs.getLogger(LoggingConfigsTest.class);
7979
assertEquals(NOPLogger.class, logger.getClass());
8080
}
8181

@@ -90,7 +90,7 @@ public void testGetLogger_loggingEnabled_noBinding() {
9090
.thenReturn(org.slf4j.helpers.NOPLogger.NOP_LOGGER);
9191

9292
// Use the mock LoggerFactoryProvider in getLogger()
93-
Logger logger = LoggingUtils.getLogger(LoggingUtilsTest.class, mockLoggerFactoryProvider);
93+
Logger logger = LoggingConfigs.getLogger(LoggingConfigsTest.class, mockLoggerFactoryProvider);
9494

9595
// Assert that the returned logger is a NOPLogger
9696
assertTrue(logger instanceof org.slf4j.helpers.NOPLogger);
@@ -99,16 +99,16 @@ public void testGetLogger_loggingEnabled_noBinding() {
9999
@Test
100100
public void testIsLoggingEnabled_true() {
101101
testEnvironmentProvider.setEnv("GOOGLE_SDK_JAVA_LOGGING", "true");
102-
assertTrue(LoggingUtils.isLoggingEnabled());
102+
assertTrue(LoggingConfigs.isLoggingEnabled());
103103
testEnvironmentProvider.setEnv("GOOGLE_SDK_JAVA_LOGGING", "TRUE");
104-
assertTrue(LoggingUtils.isLoggingEnabled());
104+
assertTrue(LoggingConfigs.isLoggingEnabled());
105105
testEnvironmentProvider.setEnv("GOOGLE_SDK_JAVA_LOGGING", "True");
106-
assertTrue(LoggingUtils.isLoggingEnabled());
106+
assertTrue(LoggingConfigs.isLoggingEnabled());
107107
}
108108

109109
@Test
110110
public void testIsLoggingEnabled_defaultToFalse() {
111-
assertFalse(LoggingUtils.isLoggingEnabled());
111+
assertFalse(LoggingConfigs.isLoggingEnabled());
112112
}
113113

114114
@Test

oauth2_http/javatests/com/google/auth/oauth2/ServiceAccountCredentialsTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ private ServiceAccountCredentials.Builder createDefaultBuilder() throws IOExcept
165165
public void setup() {
166166
testEnvironmentProvider = new TestEnvironmentProvider();
167167
testEnvironmentProvider.setEnv("GOOGLE_SDK_JAVA_LOGGING", "true");
168-
LoggingUtils.setEnvironmentProvider(testEnvironmentProvider);
168+
LoggingConfigs.setEnvironmentProvider(testEnvironmentProvider);
169169
}
170170

171171
@Test

0 commit comments

Comments
 (0)