Skip to content

Commit efce84f

Browse files
remove the use of slf4j
1 parent 1d28dd9 commit efce84f

File tree

4 files changed

+40
-119
lines changed

4 files changed

+40
-119
lines changed

.idea/runConfigurations/debug_kafka_clients_example.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

superstream-clients/dependency-reduced-pom.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<groupId>ai.superstream</groupId>
55
<artifactId>superstream-clients</artifactId>
66
<name>Superstream Kafka Client Optimizer</name>
7-
<version>1.0.3</version>
7+
<version>1.0.4</version>
88
<description>A Java library that dynamically optimizes Kafka client configuration based on recommendations</description>
99
<url>https://github.com/superstreamlabs/superstream-clients-java</url>
1010
<developers>
@@ -262,7 +262,6 @@
262262
<jackson.version>2.14.2</jackson.version>
263263
<kafka.version>3.3.2</kafka.version>
264264
<maven.compiler.target>11</maven.compiler.target>
265-
<slf4j.version>1.7.36</slf4j.version>
266265
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
267266
</properties>
268267
</project>

superstream-clients/pom.xml

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>ai.superstream</groupId>
88
<artifactId>superstream-clients</artifactId>
9-
<version>1.0.3</version>
9+
<version>1.0.4</version>
1010
<packaging>jar</packaging>
1111

1212
<name>Superstream Kafka Client Optimizer</name>
@@ -51,7 +51,6 @@
5151
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
5252
<kafka.version>3.3.2</kafka.version>
5353
<jackson.version>2.14.2</jackson.version>
54-
<slf4j.version>1.7.36</slf4j.version>
5554
<bytebuddy.version>1.14.9</bytebuddy.version>
5655
</properties>
5756

@@ -83,13 +82,6 @@
8382
<version>${jackson.version}</version>
8483
</dependency>
8584

86-
<!-- Logging -->
87-
<dependency>
88-
<groupId>org.slf4j</groupId>
89-
<artifactId>slf4j-api</artifactId>
90-
<version>${slf4j.version}</version>
91-
</dependency>
92-
9385
<!-- Test dependencies -->
9486
<dependency>
9587
<groupId>org.junit.jupiter</groupId>
Lines changed: 37 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,15 @@
11
package ai.superstream.util;
22

3-
import org.slf4j.Logger;
4-
import org.slf4j.LoggerFactory;
5-
63
/**
74
* Custom logger for the Superstream library that falls back to System.out/System.err
8-
* if no SLF4J implementation is available.
95
*/
106
public class SuperstreamLogger {
117
private static final String PREFIX = "superstream";
12-
private final Logger logger;
13-
private final String loggerName;
14-
private static boolean slf4jAvailable = false;
8+
private final String className;
159
// Flag to control debug logging - default to false to hide debug logs
1610
private static boolean debugEnabled = false;
1711

1812
static {
19-
try {
20-
// Try to detect if SLF4J implementation is available
21-
Class.forName("org.slf4j.impl.StaticLoggerBinder");
22-
slf4jAvailable = true;
23-
} catch (ClassNotFoundException e) {
24-
System.out.println("[superstream] No SLF4J implementation found. Falling back to System.out logging.");
25-
slf4jAvailable = false;
26-
}
27-
2813
// Check if debug logging is enabled via system property or environment variable
2914
String debugFlag = System.getProperty("superstream.debug");
3015
if (debugFlag == null) {
@@ -39,8 +24,7 @@ public static void setDebugEnabled(boolean enabled) {
3924
}
4025

4126
private SuperstreamLogger(Class<?> clazz) {
42-
this.logger = LoggerFactory.getLogger(clazz);
43-
this.loggerName = clazz.getSimpleName();
27+
this.className = clazz.getSimpleName();
4428
}
4529

4630
/**
@@ -64,140 +48,88 @@ private String withPrefix(String message) {
6448
}
6549

6650
/**
67-
* Log an info message with the superstream prefix.
68-
*
69-
* @param message The message to log
51+
* Log an info message.
7052
*/
7153
public void info(String message) {
72-
if (slf4jAvailable) {
73-
logger.info(withPrefix(message));
74-
} else {
75-
System.out.println(loggerName + " INFO: " + withPrefix(message));
76-
}
54+
System.out.println(formatLogMessage("INFO", message));
7755
}
7856

7957
/**
80-
* Log an info message with parameters and the superstream prefix.
81-
*
82-
* @param message The message to log
83-
* @param args The parameters for the message
58+
* Log an info message with parameters.
8459
*/
8560
public void info(String message, Object... args) {
86-
if (slf4jAvailable) {
87-
logger.info(withPrefix(message), args);
88-
} else {
89-
System.out.println(loggerName + " INFO: " + withPrefix(formatMessage(message, args)));
90-
}
61+
System.out.println(formatLogMessage("INFO", formatArgs(message, args)));
9162
}
9263

9364
/**
94-
* Log a warning message with the superstream prefix.
95-
*
96-
* @param message The message to log
65+
* Log a warning message.
9766
*/
9867
public void warn(String message) {
99-
if (slf4jAvailable) {
100-
logger.warn(withPrefix(message));
101-
} else {
102-
System.out.println(loggerName + " WARN: " + withPrefix(message));
103-
}
68+
System.out.println(formatLogMessage("WARN", message));
10469
}
10570

10671
/**
107-
* Log a warning message with parameters and the superstream prefix.
108-
*
109-
* @param message The message to log
110-
* @param args The parameters for the message
72+
* Log a warning message with parameters.
11173
*/
11274
public void warn(String message, Object... args) {
113-
if (slf4jAvailable) {
114-
logger.warn(withPrefix(message), args);
115-
} else {
116-
System.out.println(loggerName + " WARN: " + withPrefix(formatMessage(message, args)));
117-
}
75+
System.out.println(formatLogMessage("WARN", formatArgs(message, args)));
11876
}
11977

12078
/**
121-
* Log an error message with the superstream prefix.
122-
*
123-
* @param message The message to log
79+
* Log an error message.
12480
*/
12581
public void error(String message) {
126-
if (slf4jAvailable) {
127-
logger.error(withPrefix(message));
128-
} else {
129-
System.err.println(loggerName + " ERROR: " + withPrefix(message));
130-
}
82+
System.err.println(formatLogMessage("ERROR", message));
13183
}
13284

13385
/**
134-
* Log an error message with parameters and the superstream prefix.
135-
*
136-
* @param message The message to log
137-
* @param args The parameters for the message
86+
* Log an error message with parameters.
13887
*/
13988
public void error(String message, Object... args) {
140-
if (slf4jAvailable) {
141-
logger.error(withPrefix(message), args);
142-
} else {
143-
System.err.println(loggerName + " ERROR: " + withPrefix(formatMessage(message, args)));
144-
}
89+
System.err.println(formatLogMessage("ERROR", formatArgs(message, args)));
14590
}
14691

14792
/**
148-
* Log an error message with an exception and the superstream prefix.
149-
*
150-
* @param message The message to log
151-
* @param throwable The exception to log
93+
* Log an error message with an exception.
15294
*/
15395
public void error(String message, Throwable throwable) {
154-
if (slf4jAvailable) {
155-
logger.error(withPrefix(message), throwable);
156-
} else {
157-
System.err.println(loggerName + " ERROR: " + withPrefix(message));
158-
throwable.printStackTrace();
159-
}
96+
System.err.println(formatLogMessage("ERROR", message));
97+
throwable.printStackTrace(System.err);
16098
}
16199

162100
/**
163-
* Log a debug message with the superstream prefix.
164-
*
165-
* @param message The message to log
101+
* Log a debug message.
166102
*/
167103
public void debug(String message) {
168-
// Early return if debug is disabled
169-
if (!debugEnabled && !slf4jAvailable) {
170-
return;
171-
}
172-
173-
if (slf4jAvailable) {
174-
logger.debug(withPrefix(message));
175-
} else {
176-
System.out.println(loggerName + " DEBUG: " + withPrefix(message));
104+
if (debugEnabled) {
105+
System.out.println(formatLogMessage("DEBUG", message));
177106
}
178107
}
179108

180109
/**
181-
* Log a debug message with parameters and the superstream prefix.
182-
*
183-
* @param message The message to log
184-
* @param args The parameters for the message
110+
* Log a debug message with parameters.
185111
*/
186112
public void debug(String message, Object... args) {
187-
// Early return if debug is disabled
188-
if (!debugEnabled && !slf4jAvailable) {
189-
return;
113+
if (debugEnabled) {
114+
System.out.println(formatLogMessage("DEBUG", formatArgs(message, args)));
190115
}
116+
}
191117

192-
if (slf4jAvailable) {
193-
logger.debug(withPrefix(message), args);
194-
} else {
195-
System.out.println(loggerName + " DEBUG: " + withPrefix(formatMessage(message, args)));
196-
}
118+
public static boolean isDebugEnabled() {
119+
return debugEnabled;
197120
}
198121

199-
private String formatMessage(String message, Object... args) {
200-
// Simple implementation of string formatting for fallback mode
122+
/**
123+
* Format a log message with the Superstream prefix and class name.
124+
*/
125+
private String formatLogMessage(String level, String message) {
126+
return String.format("[%s] %s %s: %s", PREFIX, level, className, message);
127+
}
128+
129+
/**
130+
* Replace placeholder {} with actual values.
131+
*/
132+
private String formatArgs(String message, Object... args) {
201133
if (args == null || args.length == 0) {
202134
return message;
203135
}
@@ -215,6 +147,4 @@ private String formatMessage(String message, Object... args) {
215147
}
216148
return result;
217149
}
218-
219-
220150
}

0 commit comments

Comments
 (0)