Skip to content

Commit 2ac7b4e

Browse files
Update upstream OpenTelemetry agent dependencies to 2.22.0 (#898)
* chore: Update upstream OpenTelemetry agent version and related depend... ... encies Made with ❤️️ by updatecli * have custom logging initialize later * initializationComplete to a method * typo * typo --------- Co-authored-by: elastic-observability-automation[bot] <180520183+elastic-observability-automation[bot]@users.noreply.github.com> Co-authored-by: Jack Shirazi <[email protected]>
1 parent 60cb6c9 commit 2ac7b4e

File tree

3 files changed

+46
-12
lines changed

3 files changed

+46
-12
lines changed

gradle/libs.versions.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ opentelemetryProto = "1.3.2-alpha"
1111

1212
# otel agent, we rely on the '*-alpha' and get the non-alpha dependencies transitively
1313
# updated from upstream agent with gradle/update-upstream.sh
14-
opentelemetryJavaagentAlpha = "2.21.0-alpha"
14+
opentelemetryJavaagentAlpha = "2.22.0-alpha"
1515

1616
# otel contrib
1717
# updated from upstream agent with gradle/update-upstream.sh
18-
opentelemetryContribAlpha = "1.51.0-alpha"
18+
opentelemetryContribAlpha = "1.52.0-alpha"
1919

2020
# otel semconv
2121
# updated from upstream agent with gradle/update-upstream.sh

internal-logging/src/main/java/co/elastic/otel/logging/ElasticLoggingCustomizer.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,9 @@ public void init(EarlyInitAgentConfig earlyConfig) {
6060
}
6161

6262
@Override
63-
public void onStartupSuccess() {}
63+
public void onStartupSuccess() {
64+
Slf4jInternalLogger.setInitializationComplete();
65+
}
6466

6567
@SuppressWarnings("CallToPrintStackTrace")
6668
@Override

internal-logging/src/main/java/co/elastic/otel/logging/Slf4jInternalLogger.java

Lines changed: 41 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,37 +25,69 @@
2525

2626
/** Internal logger implementation that delegates to SLF4J */
2727
public class Slf4jInternalLogger implements InternalLogger {
28-
private final Logger logger;
28+
private final String name;
29+
private volatile Logger logger;
30+
private static volatile boolean initializationComplete = false;
31+
32+
static void setInitializationComplete() {
33+
initializationComplete = true;
34+
}
2935

3036
private Slf4jInternalLogger(String name) {
31-
this.logger = LoggerFactory.getLogger(name);
37+
this.name = name;
3238
}
3339

3440
public static InternalLogger create(String name) {
3541
return new Slf4jInternalLogger(name);
3642
}
3743

44+
private Logger getLogger() {
45+
if (logger == null) {
46+
synchronized (this) {
47+
if (logger == null) {
48+
logger = LoggerFactory.getLogger(name);
49+
}
50+
}
51+
}
52+
return logger;
53+
}
54+
3855
@Override
3956
public boolean isLoggable(Level level) {
57+
if (!initializationComplete) {
58+
// During startup, only log INFO and above to avoid noise and match typical default behavior
59+
return level != Level.TRACE && level != Level.DEBUG;
60+
}
4061
switch (level) {
4162
case TRACE:
42-
return logger.isTraceEnabled();
63+
return getLogger().isTraceEnabled();
4364
case DEBUG:
44-
return logger.isDebugEnabled();
65+
return getLogger().isDebugEnabled();
4566
case INFO:
46-
return logger.isInfoEnabled();
67+
return getLogger().isInfoEnabled();
4768
case WARN:
48-
return logger.isWarnEnabled();
69+
return getLogger().isWarnEnabled();
4970
case ERROR:
50-
return logger.isErrorEnabled();
71+
return getLogger().isErrorEnabled();
5172
default:
5273
throw new IllegalArgumentException("Unsupported level: " + level);
5374
}
5475
}
5576

5677
@Override
5778
public void log(Level level, String s, @Nullable Throwable throwable) {
58-
logger.atLevel(toSlf4jLevel(level)).setCause(throwable).log(s);
79+
if (!initializationComplete) {
80+
if (isLoggable(level)) {
81+
// Fallback logging to System.out during startup to avoid ClassCircularityError
82+
// Mimic a simple log format: [Thread] LEVEL LoggerName - Message
83+
System.out.printf("[%s] %s %s - %s%n", Thread.currentThread().getName(), level, name, s);
84+
if (throwable != null) {
85+
throwable.printStackTrace(System.out);
86+
}
87+
}
88+
return;
89+
}
90+
getLogger().atLevel(toSlf4jLevel(level)).setCause(throwable).log(s);
5991
}
6092

6193
private static org.slf4j.event.Level toSlf4jLevel(Level level) {
@@ -77,6 +109,6 @@ private static org.slf4j.event.Level toSlf4jLevel(Level level) {
77109

78110
@Override
79111
public String name() {
80-
return logger.getName();
112+
return name;
81113
}
82114
}

0 commit comments

Comments
 (0)