sundaybluesky opened a new issue, #3527:
URL: https://github.com/apache/logging-log4j2/issues/3527

   AsyncLogger constructor access changed from public to package-private at 
2.24.3 code change - https://github.com/apache/logging-log4j2/pull/3263 blocked 
our CustomLogger instances initialization.
   
   We have a requirement to introduce extra enablement checks in AsyncLogger 
isEnabled methods to control print out logs or not. Actually AsyncLogger is not 
extension friendly due to internal referenced AsyncLoggerDisruptor.class 
constructor is private. Before 2.24.3, we've created CustomLogger with the same 
package org.apache.logging.log4j.core.async as AsyncLogger and use reflection 
to initialize CustomLogger instances and it is working 7+ years.
   
   Code sample,
   package org.apache.logging.log4j.core.async;
   public class CustomLogger extends AsyncLogger {
   
           @Override
        public boolean isEnabled(final Level level, final Marker marker, final 
String message) {
              if (isCustomEnablementOn) {
                  return true;
              }
              return super.isEnabled(level, marker, message);
           }
   }
   
   **Asks**
   Change AsyncLogger constructor access back to public and consider make 
AsyncLogger more extensible, user can extend, override AsyncLogger and create 
subclass of AsyncLogger instance directly, no limitation on private 
AsyncLoggerDisruptor.class or others internal referenced classes access.


-- 
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: notifications-unsubscr...@logging.apache.org.apache.org

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

Reply via email to