Skip to content

Commit ec661c7

Browse files
committed
* log: config output level via LogLevels.infoLevel()/traceLevel(), make it possible to reduce unnecessary external logs
Signed-off-by: neo <1100909+neowu@users.noreply.github.com>
1 parent 793b296 commit ec661c7

22 files changed

+128
-24
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
### 9.3.1 (10/8/2025 - )
44

5+
* log: config output level via LogLevels.infoLevel()/traceLevel(), make it possible to reduce unnecessary external logs
6+
57
### 9.3.0 (8/27/2025 - 10/8/2025) !!! only support java 25
68

79
* db: check jdbc url on DBConfig

core-ng/src/main/java/core/framework/internal/kafka/ConsumerMetrics.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import core.framework.internal.stat.Stats;
55
import org.apache.kafka.common.Metric;
66
import org.apache.kafka.common.MetricName;
7+
import org.jspecify.annotations.Nullable;
78

89
import java.util.List;
910
import java.util.Map;
@@ -13,13 +14,14 @@
1314
* @author neo
1415
*/
1516
public class ConsumerMetrics implements Metrics {
17+
@Nullable
1618
private final String name;
1719
private final List<Metric> recordsLagMax = new CopyOnWriteArrayList<>(); // all metrics are added in message thread, so to use concurrent list
1820
private final List<Metric> recordsConsumedRate = new CopyOnWriteArrayList<>();
1921
private final List<Metric> bytesConsumedRate = new CopyOnWriteArrayList<>();
2022
private final List<Metric> fetchRate = new CopyOnWriteArrayList<>();
2123

22-
ConsumerMetrics(String name) {
24+
ConsumerMetrics(@Nullable String name) {
2325
this.name = name;
2426
}
2527

core-ng/src/main/java/core/framework/internal/kafka/KafkaMessage.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ public class KafkaMessage {
1717
public static final String HEADER_CLIENT = "client";
1818
public static final String HEADER_REF_ID = "refId";
1919

20+
@Nullable
2021
final String key;
2122
final byte[] value;
2223
@Nullable

core-ng/src/main/java/core/framework/internal/kafka/KeyDeserializer.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import org.apache.kafka.common.header.Headers;
44
import org.apache.kafka.common.serialization.Deserializer;
55
import org.apache.kafka.common.utils.Utils;
6+
import org.jspecify.annotations.Nullable;
67

78
import java.nio.ByteBuffer;
89
import java.nio.charset.StandardCharsets;
@@ -15,8 +16,9 @@ public String deserialize(String topic, byte[] data) {
1516
throw new Error("unexpected flow");
1617
}
1718

19+
@Nullable
1820
@Override
19-
public String deserialize(String topic, Headers headers, ByteBuffer data) {
21+
public String deserialize(String topic, Headers headers, @Nullable ByteBuffer data) {
2022
if (data == null) return null;
2123

2224
if (data.hasArray()) {

core-ng/src/main/java/core/framework/internal/log/AbstractLogger.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package core.framework.internal.log;
22

3+
import core.framework.log.LogLevel;
34
import org.slf4j.Logger;
45
import org.slf4j.Marker;
56

core-ng/src/main/java/core/framework/internal/log/ActionLog.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package core.framework.internal.log;
22

3+
import core.framework.log.LogLevel;
34
import core.framework.log.Markers;
45
import core.framework.util.Strings;
56
import org.jspecify.annotations.Nullable;
@@ -12,8 +13,8 @@
1213
import java.util.List;
1314
import java.util.Map;
1415

15-
import static core.framework.internal.log.LogLevel.DEBUG;
16-
import static core.framework.internal.log.LogLevel.WARN;
16+
import static core.framework.log.LogLevel.DEBUG;
17+
import static core.framework.log.LogLevel.WARN;
1718

1819
/**
1920
* @author neo

core-ng/src/main/java/core/framework/internal/log/DefaultLoggerFactory.java

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package core.framework.internal.log;
22

3+
import core.framework.log.LogLevel;
4+
import core.framework.log.LogLevels;
35
import core.framework.util.Maps;
46
import org.slf4j.ILoggerFactory;
57
import org.slf4j.Logger;
@@ -11,6 +13,13 @@
1113
*/
1214
public final class DefaultLoggerFactory implements ILoggerFactory {
1315
private final Map<String, Logger> loggers = Maps.newConcurrentHashMap();
16+
private final LogLevels.Entry[] infoLevels;
17+
private final LogLevels.Entry[] traceLevels;
18+
19+
public DefaultLoggerFactory(LogLevels.Entry[] infoLevels, LogLevels.Entry[] traceLevels) {
20+
this.infoLevels = infoLevels;
21+
this.traceLevels = traceLevels;
22+
}
1423

1524
@Override
1625
public Logger getLogger(String name) {
@@ -22,22 +31,19 @@ private Logger createLogger(String name) {
2231
}
2332

2433
private LogLevel infoLevel(String name) {
25-
// kafka log info for every producer/consumer, to reduce verbosity
26-
if (name.startsWith("org.apache.kafka.")) {
27-
return LogLevel.WARN;
28-
}
29-
// refer to org.elasticsearch.nativeaccess.NativeAccessHolder, to emmit warning under integration-test env
30-
if (name.startsWith("org.elasticsearch.nativeaccess.")) {
31-
return LogLevel.ERROR;
34+
for (LogLevels.Entry entry : infoLevels) {
35+
if (name.startsWith(entry.prefix())) {
36+
return entry.level();
37+
}
3238
}
3339
return LogLevel.INFO;
3440
}
3541

3642
private LogLevel traceLevel(String name) {
37-
if (name.startsWith("org.elasticsearch")
38-
|| name.startsWith("org.mongodb")
39-
|| name.startsWith("org.xnio")) {
40-
return LogLevel.INFO;
43+
for (LogLevels.Entry entry : traceLevels) {
44+
if (name.startsWith(entry.prefix())) {
45+
return entry.level();
46+
}
4147
}
4248
return LogLevel.DEBUG;
4349
}

core-ng/src/main/java/core/framework/internal/log/DefaultLoggerServiceProvider.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package core.framework.internal.log;
22

3+
import core.framework.log.LogLevels;
34
import org.slf4j.ILoggerFactory;
45
import org.slf4j.IMarkerFactory;
56
import org.slf4j.helpers.BasicMarkerFactory;
@@ -37,7 +38,7 @@ public String getRequestedApiVersion() {
3738

3839
@Override
3940
public void initialize() {
40-
loggerFactory = new DefaultLoggerFactory();
41+
loggerFactory = LogLevels.createLoggerFactory();
4142
markerFactory = new BasicMarkerFactory();
4243
mdcAdapter = new NOPMDCAdapter();
4344
}

core-ng/src/main/java/core/framework/internal/log/LogEvent.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package core.framework.internal.log;
22

33
import core.framework.internal.log.marker.ErrorCodeMarker;
4+
import core.framework.log.LogLevel;
45
import core.framework.util.Exceptions;
56
import core.framework.util.Network;
67
import org.jspecify.annotations.Nullable;

core-ng/src/main/java/core/framework/internal/log/LoggerImpl.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package core.framework.internal.log;
22

3+
import core.framework.log.LogLevel;
34
import core.framework.util.Strings;
45
import org.slf4j.Marker;
56

@@ -28,8 +29,8 @@ static String abbreviateLoggerName(String name) {
2829
return builder.toString();
2930
}
3031

31-
private final LogLevel infoLevel;
32-
private final LogLevel traceLevel;
32+
final LogLevel infoLevel;
33+
final LogLevel traceLevel;
3334

3435
LoggerImpl(String name, LogLevel infoLevel, LogLevel traceLevel) {
3536
super(abbreviateLoggerName(name));

0 commit comments

Comments
 (0)