Skip to content

Commit 50b3c24

Browse files
authored
fix(bigquery-jdbc): Add PerConnectionHandler to list of excempted logging classes (#13888)
1 parent ed87a68 commit 50b3c24

2 files changed

Lines changed: 25 additions & 0 deletions

File tree

java-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcCustomLogger.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ private static boolean isLoggerClass(String className) {
116116
return className.equals("com.google.cloud.bigquery.jdbc.BigQueryJdbcCustomLogger")
117117
|| className.equals("com.google.cloud.bigquery.jdbc.BigQueryJdbcResultSetLogger")
118118
|| className.startsWith("com.google.cloud.bigquery.jdbc.BigQueryJdbcRootLogger")
119+
|| className.equals("com.google.cloud.bigquery.jdbc.PerConnectionFileHandler")
119120
|| className.equals(BigQueryJdbcLogRecord.class.getName());
120121
}
121122
}

java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcCustomLoggerTest.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import com.google.cloud.bigquery.FieldValue.Attribute;
2828
import com.google.cloud.bigquery.FieldValueList;
2929
import com.google.cloud.bigquery.LegacySQLTypeName;
30+
import java.nio.file.Path;
3031
import java.util.ArrayList;
3132
import java.util.Collections;
3233
import java.util.HashMap;
@@ -41,6 +42,7 @@
4142
import org.junit.jupiter.api.AfterEach;
4243
import org.junit.jupiter.api.BeforeEach;
4344
import org.junit.jupiter.api.Test;
45+
import org.junit.jupiter.api.io.TempDir;
4446

4547
public class BigQueryJdbcCustomLoggerTest extends BigQueryJdbcLoggingBaseTest {
4648

@@ -118,6 +120,28 @@ public void testLazyCallerInference() {
118120
assertEquals("testLazyCallerInference", methodName);
119121
}
120122

123+
@Test
124+
public void testCallerInferenceWithPerConnectionFileHandler(@TempDir Path tempDir) {
125+
PerConnectionFileHandler perConnHandler =
126+
new PerConnectionFileHandler(tempDir.toString(), Level.ALL);
127+
try {
128+
logger.fine("Message through PerConnectionFileHandler");
129+
130+
List<LogRecord> records = testHandler.getRecords();
131+
assertEquals(1, records.size());
132+
LogRecord record = records.get(0);
133+
134+
// Publish record via PerConnectionFileHandler to put PerConnectionFileHandler on stack trace
135+
perConnHandler.publish(record);
136+
137+
// Verify that caller inference skips PerConnectionFileHandler frame
138+
assertEquals(BigQueryJdbcCustomLoggerTest.class.getName(), record.getSourceClassName());
139+
assertEquals("testCallerInferenceWithPerConnectionFileHandler", record.getSourceMethodName());
140+
} finally {
141+
perConnHandler.close();
142+
}
143+
}
144+
121145
@Test
122146
public void testHotPathLoggerLogToDefaultWhenContextIsNull() {
123147
BigQueryJdbcCustomLogger hotpathLogger =

0 commit comments

Comments
 (0)