Hello Team,
Is there any alternative way for you guys to obtain below LoggerContext without
explicitly type casting / strongly depending on
org.apache.logging.log4j.core.Logger?
Class: org.apache.geode.internal.logging.LogService
private static void init() {
LoggerContext context = ((org.apache.logging.log4j.core.Logger)
LogManager.getLogger(BASE_LOGGER_NAME,
GemFireParameterizedMessageFactory.INSTANCE)).getContext();
context.removePropertyChangeListener(propertyChangeListener);
context.addPropertyChangeListener(propertyChangeListener);
context.reconfigure(); // propertyChangeListener invokes
configureFastLoggerDelegating
configureLoggers(false, false);
}
Due to that strong and direct dependency on log4j-core/Logger instead of
SLF4JContext, it does not permit to use logback for us with below dependency.
With that direct type usage, it results into below exception
Caused by: java.lang.ClassCastException: org.apache.logging.slf4j.SLF4JLogger
cannot be cast to org.apache.logging.log4j.core.Logger
at
org.apache.geode.internal.logging.LogService.init(LogService.java:72)
at
org.apache.geode.internal.logging.LogService.<clinit>(LogService.java:69)
... 35 common frames omitted
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-to-slf4j</artifactId>
<version>2.7</version>
</dependency>
I also tried "Using Different Front-End Logging APIs to Log to Log4j2" as
suggested from below source but that too does not work. Usually it should work
with log4j-to-slf4j which is binding for log4j2 to slf4j provided you don't
have direct usage of org.apache.logging.log4j.core.Logger!
https://geode.apache.org/docs/guide/11/managing/logging/configuring_log4j2.html
Thanks & Regards,
Dharam
This message is confidential and subject to terms at:
http://www.jpmorgan.com/emaildisclaimer including on confidentiality, legal
privilege, viruses and monitoring of electronic messages. If you are not the
intended recipient, please delete this message and notify the sender
immediately. Any unauthorized use is strictly prohibited.