ppkarwasz commented on code in PR #17373:
URL: https://github.com/apache/kafka/pull/17373#discussion_r1824901568


##########
connect/runtime/src/main/java/org/apache/kafka/connect/runtime/Loggers.java:
##########
@@ -174,43 +175,50 @@ private synchronized List<org.apache.log4j.Logger> 
loggers(String namespace) {
     }
 
     // visible for testing
-    org.apache.log4j.Logger lookupLogger(String logger) {
+    org.apache.logging.log4j.Logger lookupLogger(String logger) {
         return LogManager.getLogger(logger);
     }
 
-    @SuppressWarnings("unchecked")
-    // visible for testing
-    Enumeration<org.apache.log4j.Logger> currentLoggers() {
-        return LogManager.getCurrentLoggers();
+    List<org.apache.logging.log4j.Logger> currentLoggers() {
+        LoggerContext context = (LoggerContext) LogManager.getContext(false);
+        Collection<LoggerConfig> loggerConfigs = 
context.getConfiguration().getLoggers().values();
+        Set<String> loggerNames = loggerConfigs.stream()
+            .map(LoggerConfig::getName)
+            .collect(Collectors.toSet());
+
+        List<org.apache.logging.log4j.Logger> loggers = new ArrayList<>();
+        for (String name : loggerNames) {
+            loggers.add(LogManager.getLogger(name));
+        }
+        return loggers;
     }
 
     // visible for testing
-    org.apache.log4j.Logger rootLogger() {
+    org.apache.logging.log4j.Logger rootLogger() {
         return LogManager.getRootLogger();
     }
 
-    private void setLevel(org.apache.log4j.Logger logger, Level level) {
-        Level currentLevel = logger.getLevel();
-        if (currentLevel == null)
-            currentLevel = logger.getEffectiveLevel();
+    private void setLevel(org.apache.logging.log4j.Logger logger, Level level) 
{
+        String loggerName = logger.getName();
+        LoggerContext context = (LoggerContext) LogManager.getContext(false);
+        LoggerConfig loggerConfig = 
context.getConfiguration().getLoggerConfig(loggerName);
+        Level currentLevel = loggerConfig.getLevel();

Review Comment:
   We can probably reach a consensus in the Logging PMC to release a new Log4j 
Configuration API, that you can use to abstract from the internals of the 
logging implementation (see [this thread on 
`dev@logging`](https://lists.apache.org/thread/ktdlo5br6jc39xo33vdsfsj2s200mm93)).
   
   What is the planned release date for Kafka 4.x? If you wait until the end of 
the year, this class might not be necessary.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to