From 85ec96def7ce4ec63fe5c643d57e163f8d1d7244 Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Fri, 14 Nov 2025 14:13:27 +0100 Subject: [PATCH] cleanup [diagnostic]: needlessly extracted method; minor optimization; formatting GitOrigin-RevId: d4900d7dae944dbc4a64aa1111a0ab2ac8474a56 --- .../org/jetbrains/jps/cmdline/LogSetup.java | 8 +++- .../src/com/intellij/idea/LoggerFactory.java | 11 +++-- .../openapi/diagnostic/JulLogger.java | 43 ++++++------------- 3 files changed, 26 insertions(+), 36 deletions(-) diff --git a/jps/jps-builders/src/org/jetbrains/jps/cmdline/LogSetup.java b/jps/jps-builders/src/org/jetbrains/jps/cmdline/LogSetup.java index e5b00cf29bc2..245c5489cadb 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/cmdline/LogSetup.java +++ b/jps/jps-builders/src/org/jetbrains/jps/cmdline/LogSetup.java @@ -3,6 +3,7 @@ package org.jetbrains.jps.cmdline; import com.intellij.openapi.diagnostic.JulLogger; import com.intellij.openapi.diagnostic.Logger; +import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.jps.api.GlobalOptions; @@ -18,6 +19,7 @@ import java.nio.file.Paths; import java.text.SimpleDateFormat; import java.util.*; import java.util.logging.Filter; +import java.util.logging.Level; import java.util.logging.LogManager; import static com.intellij.openapi.diagnostic.InMemoryHandler.FAILED_BUILD_LOG_FILE_NAME_PREFIX; @@ -49,9 +51,11 @@ public final class LogSetup { List classesToFilter = acceptConfig(configFile); if (!classesToFilter.isEmpty()) { - filter = JulLogger.createFilter(classesToFilter); + filter = record -> record.getLevel().intValue() > Level.FINE.intValue() || + !ContainerUtil.exists(classesToFilter, record.getLoggerName()::startsWith); } - } else { + } + else { JulLogger.clearHandlers(); try (InputStream in = new BufferedInputStream(Files.newInputStream(configFile))) { LogManager.getLogManager().readConfiguration(in); diff --git a/platform/platform-impl/src/com/intellij/idea/LoggerFactory.java b/platform/platform-impl/src/com/intellij/idea/LoggerFactory.java index 8a732201aa44..1f4f7c3d2885 100644 --- a/platform/platform-impl/src/com/intellij/idea/LoggerFactory.java +++ b/platform/platform-impl/src/com/intellij/idea/LoggerFactory.java @@ -37,11 +37,14 @@ public final class LoggerFactory implements Logger.Factory { var enableConsoleLogger = !logToJsonStdout && Boolean.parseBoolean(System.getProperty("idea.log.console", "true")); var append = Boolean.parseBoolean(System.getProperty("idea.log.append", "true")); - boolean isInternal = Boolean.getBoolean(ApplicationManagerEx.IS_INTERNAL_PROPERTY); - var persistAttachments = Boolean.parseBoolean(System.getProperty("idea.log.persist.attachments", Boolean.toString(isInternal))); + var writeAttachments = Boolean.parseBoolean( + System.getProperty("idea.log.persist.attachments", System.getProperty(ApplicationManagerEx.IS_INTERNAL_PROPERTY)) + ); - JulLogger.configureLogFileAndConsole(getLogFilePath(), append, enableConsoleLogger, true, persistAttachments, - () -> IdeaLogger.dropFrequentExceptionsCaches(), null, null); + JulLogger.configureLogFileAndConsole( + getLogFilePath(), append, enableConsoleLogger, true, writeAttachments, + () -> IdeaLogger.dropFrequentExceptionsCaches(), null, null + ); var dialogAppender = new DialogAppender(); dialogAppender.setLevel(Level.SEVERE); diff --git a/platform/util/src/com/intellij/openapi/diagnostic/JulLogger.java b/platform/util/src/com/intellij/openapi/diagnostic/JulLogger.java index a908416e5ca4..54fef4452b69 100644 --- a/platform/util/src/com/intellij/openapi/diagnostic/JulLogger.java +++ b/platform/util/src/com/intellij/openapi/diagnostic/JulLogger.java @@ -2,13 +2,11 @@ package com.intellij.openapi.diagnostic; import com.intellij.openapi.util.ShutDownTracker; -import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.*; import java.lang.reflect.Field; import java.nio.file.Path; import java.util.IdentityHashMap; -import java.util.List; import java.util.logging.*; import static com.intellij.openapi.diagnostic.AsyncLogKt.log; @@ -108,13 +106,12 @@ public class JulLogger extends Logger { } } - @ApiStatus.Internal public static void configureLogFileAndConsole( @NotNull Path logFilePath, boolean appendToFile, boolean enableConsoleLogger, boolean showDateInConsole, - boolean enablePersistingAttachments, + boolean writeAttachments, @Nullable Runnable onRotate, @Nullable Filter filter, @Nullable Path inMemoryLogPath @@ -124,7 +121,7 @@ public class JulLogger extends Logger { rootLogger.addHandler(configureFileHandler(logFilePath, appendToFile, onRotate, LOG_FILE_SIZE_LIMIT, LOG_FILE_COUNT, layout, filter)); - if (enablePersistingAttachments) { + if (writeAttachments) { rootLogger.addHandler(configureAttachmentHandler(logFilePath, filter)); } @@ -133,15 +130,13 @@ public class JulLogger extends Logger { } if (inMemoryLogPath != null) { - rootLogger.addHandler(configureInMemoryHandler(inMemoryLogPath)); + rootLogger.addHandler(configureInMemoryHandler(inMemoryLogPath, filter)); } } - private static @NotNull Handler configureAttachmentHandler(@NotNull Path path, @Nullable Filter filter) { + private static Handler configureAttachmentHandler(Path path, @Nullable Filter filter) { AttachmentHandler handler = new AttachmentHandler(path); - if (filter != null) { - handler.setFilter(filter); - } + if (filter != null) handler.setFilter(filter); return handler; } @@ -149,46 +144,34 @@ public class JulLogger extends Logger { OptimizedConsoleHandler consoleHandler = new OptimizedConsoleHandler(); consoleHandler.setFormatter(new IdeaLogRecordFormatter(showDateInConsole, layout)); consoleHandler.setLevel(Level.WARNING); - if (filter != null) { - consoleHandler.setFilter(filter); - } + if (filter != null) consoleHandler.setFilter(filter); return consoleHandler; } - private static InMemoryHandler configureInMemoryHandler(Path logFilePath) { + private static Handler configureInMemoryHandler(Path logFilePath, @Nullable Filter filter) { InMemoryHandler inMemoryHandler = new InMemoryHandler(logFilePath); inMemoryHandler.setFormatter(new IdeaLogRecordFormatter()); inMemoryHandler.setLevel(Level.FINEST); + if (filter != null) inMemoryHandler.setFilter(filter); return inMemoryHandler; } - @SuppressWarnings("SameParameterValue") - private static RollingFileHandler configureFileHandler( - @NotNull Path logFilePath, + private static Handler configureFileHandler( + Path logFilePath, boolean appendToFile, @Nullable Runnable onRotate, - long limit, - int count, + @SuppressWarnings("SameParameterValue") long limit, + @SuppressWarnings("SameParameterValue") int count, IdeaLogRecordFormatter layout, @Nullable Filter filter ) { RollingFileHandler fileHandler = new RollingFileHandler(logFilePath, limit, count, appendToFile, onRotate); fileHandler.setFormatter(layout); fileHandler.setLevel(Level.FINEST); - if (filter != null) { - fileHandler.setFilter(filter); - } + if (filter != null) fileHandler.setFilter(filter); return fileHandler; } - public static Filter createFilter(@NotNull List classesToFilter) { - return record -> { - String loggerName = record.getLoggerName(); - boolean isFiltered = ContainerUtil.exists(classesToFilter, loggerName::startsWith); - return !isFiltered || record.getLevel().intValue() > Level.FINE.intValue(); - }; - } - private static final class OptimizedConsoleHandler extends ConsoleHandler { @Override public void publish(LogRecord record) {