Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions NEXT_CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
### Fixed

- Fix driver crash when using `INTERVAL` types.
- Fix connection failure in restricted environments when `LogLevel.OFF` is used.

---
*Note: When making changes, please add your change under the appropriate section with a brief description.*
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@ public class LoggingUtil {

public static void setupLogger(String logDir, int logFileSizeMB, int logFileCount, LogLevel level)
throws IOException {
if (level == LogLevel.OFF) {
// Skip handler initialization to avoid AccessDeniedException in restricted environments
return;
}
if (LOGGER instanceof JulLogger && System.getProperty(JAVA_UTIL_LOGGING_CONFIG_FILE) == null) {
// Only configure JUL logger if it's not already configured via external properties file
JulLogger.initLogger(toJulLevel(level), logDir, logFileSizeMB * 1024 * 1024, logFileCount);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,14 @@ void testSetupLogger() {
assertDoesNotThrow(() -> LoggingUtil.setupLogger("test.log", 1, 1, LogLevel.DEBUG));
}

@Test
void testSetupLoggerWithOffLevel() {
// When log level is OFF, setupLogger should return early without initializing handlers
// This should not throw an exception even if the log path is not writable
assertDoesNotThrow(() -> LoggingUtil.setupLogger("/", 1, 1, LogLevel.OFF));
assertDoesNotThrow(() -> LoggingUtil.setupLogger("/invalid/path", 1, 1, LogLevel.OFF));
}

@ParameterizedTest
@MethodSource("logLevelToJulLevelProvider")
void testToJulLevel(LogLevel input, Level expected) {
Expand All @@ -32,6 +40,7 @@ static Stream<Arguments> logLevelToJulLevelProvider() {
org.junit.jupiter.params.provider.Arguments.of(LogLevel.FATAL, Level.SEVERE),
org.junit.jupiter.params.provider.Arguments.of(LogLevel.INFO, Level.INFO),
org.junit.jupiter.params.provider.Arguments.of(LogLevel.TRACE, Level.FINEST),
org.junit.jupiter.params.provider.Arguments.of(LogLevel.WARN, Level.WARNING));
org.junit.jupiter.params.provider.Arguments.of(LogLevel.WARN, Level.WARNING),
org.junit.jupiter.params.provider.Arguments.of(LogLevel.OFF, Level.OFF));
}
}
Loading