[ https://issues.apache.org/jira/browse/LOG4J2-562?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13936206#comment-13936206 ]
Bruce Brouwer commented on LOG4J2-562: -------------------------------------- The one concept that this patch provided (which definitely needs some modification) that I think might have some merit is this LoggerExtension. My patch in LOG4J2-555 adds a bunch of log methods that include the FQCN. These methods end up being public, while the previous functionality was protected. Originally, some extensions of AbstractLogger switched this protected method(s) to public and others did not. If we wanted to keep as much stuff non-public as possible, then this LoggerExtension idea could be useful. Concerning my patch in LOG4J2-555, it would mean getting rid of all the log(FQCN, ...) methods from LoggerProvider and replacing it with one method called .getExtension(), returning a LoggerExtension. LoggerExtension could then have all the .log(FQCN, ...) methods on it instead. If everyone is generally ok with the approach of my patch in LOG4J2-555 where there are more public .log(FQCN, ...) methods on AbstractLogger (essentially abstract methods), then this issue can be closed. I don't care about any of the other stuff presented in the patch I provided here. Personally, I'm totally ok with closing this issue that I reported as long as the general direction I proposed in LOG4J2-555 comes through. > Improve ability to create custom extended logger > ------------------------------------------------ > > Key: LOG4J2-562 > URL: https://issues.apache.org/jira/browse/LOG4J2-562 > Project: Log4j 2 > Issue Type: Improvement > Components: API > Reporter: Bruce Brouwer > Attachments: log4j2-loggerExtension.patch > > > Create a LoggerExtension from the original logger which simply remembers the > FQCN that will ultimately be the extension. > Also by doing this, we can switch a bunch of methods that ended up being > public back to protected. I'm guessing they became public so extensions could > call them. > This can simplify extensions (such as slf4j, jcl, custom extensions, logger > streams) so they don't have to pass in the FQCN to that special log method on > AbstractLogger anymore. Also, you don't have to wrap every extended log > method with a check to see if the logging is enabled. Finally, you don't need > to have any access to the MessageFactory. This even has to potential to > eliminate AbstractLoggerWrapper. -- This message was sent by Atlassian JIRA (v6.2#6252) --------------------------------------------------------------------- To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-dev-h...@logging.apache.org