vernedeng commented on code in PR #11480: URL: https://github.com/apache/inlong/pull/11480#discussion_r1836042131
########## inlong-sort/sort-flink/base/src/main/java/org/apache/inlong/sort/base/util/OpenTelemetryLogger.java: ########## @@ -172,64 +175,80 @@ private void createOpenTelemetrySdk() { SDK = sdkBuilder.build(); } - /** - * Add OpenTelemetryAppender to Log4j - */ - private void addOpenTelemetryAppender() { - org.apache.logging.log4j.spi.LoggerContext context = LogManager.getContext(false); - LoggerContext loggerContext = (LoggerContext) context; - Configuration config = loggerContext.getConfiguration(); - // Create OpenTelemetryAppender - OpenTelemetryAppender otelAppender = OpenTelemetryAppender.builder() - .setName("OpenTelemetryAppender") - .setLayout(this.layout) - .build(); - otelAppender.start(); - // add OpenTelemetryAppender to configuration - config.addAppender(otelAppender); - // Get Root Logger Configuration - LoggerConfig loggerConfig = config.getLoggerConfig(LogManager.ROOT_LOGGER_NAME); - // Add OpenTelemetryAppender to Root Logger - loggerConfig.addAppender(otelAppender, this.logLevel, null); - // refresh logger context - loggerContext.updateLoggers(); - } - - /** - * Remove OpenTelemetryAppender from Log4j - */ - private void removeOpenTelemetryAppender() { - org.apache.logging.log4j.spi.LoggerContext context = LogManager.getContext(false); - LoggerContext loggerContext = (LoggerContext) context; - Configuration config = loggerContext.getConfiguration(); - config.getAppenders().values().forEach(appender -> { - // Remove OpenTelemetryAppender - if (appender instanceof OpenTelemetryAppender) { - config.getRootLogger().removeAppender(appender.getName()); - appender.stop(); - } - }); - // refresh logger context - loggerContext.updateLoggers(); - } - /** * Install OpenTelemetryLogger for the application */ - public void install() { - addOpenTelemetryAppender(); - createOpenTelemetrySdk(); - OpenTelemetryAppender.install(SDK); - LOG.info("OpenTelemetryLogger installed"); + public boolean install() { + synchronized (OpenTelemetryLogger.class) { + org.apache.logging.log4j.spi.LoggerContext loggerContextSpi = LogManager.getContext(false); + if (!(loggerContextSpi instanceof LoggerContext)) { + LOG.warn("LoggerContext is not instance of LoggerContext"); Review Comment: please log the loaded whole class name and the target whole class name. -- 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: commits-unsubscr...@inlong.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org