diff --git a/README.md b/README.md
index 7c45bfb..7c285ac 100644
--- a/README.md
+++ b/README.md
@@ -152,6 +152,12 @@ https://www.yuque.com/yuanfangxiyang/ma4ytb/vvy3iz/edit#nnzKN
3.修改部分问题
+-------------------------------------------------------------------------------------------
+版本:4.2.8/时间:2024-10-18
+
+1.服务端SDK可以设置自定义日志处理器,可自行过滤不需要打印的日志
+
+
## Maven Gradle
服务端sdk引用
@@ -161,7 +167,7 @@ https://www.yuque.com/yuanfangxiyang/ma4ytb/vvy3iz/edit#nnzKN
com.farsunset
cim-server-sdk-netty
- 4.2.7
+ 4.2.8
```
diff --git a/cim-boot-server/pom.xml b/cim-boot-server/pom.xml
index e2c0a31..86000ee 100644
--- a/cim-boot-server/pom.xml
+++ b/cim-boot-server/pom.xml
@@ -17,6 +17,7 @@
1.8
+ 4.2.8
4.1.79.Final
3.21.5
8.0.30
@@ -67,7 +68,7 @@
com.farsunset
cim-server-sdk-netty
- 4.2.7
+ ${cim.server.sdk.version}
org.apache.commons
diff --git a/cim-boot-server/src/main/java/com/farsunset/cim/component/logger/CIMEventLogger.java b/cim-boot-server/src/main/java/com/farsunset/cim/component/logger/CIMEventLogger.java
new file mode 100644
index 0000000..4ba5599
--- /dev/null
+++ b/cim-boot-server/src/main/java/com/farsunset/cim/component/logger/CIMEventLogger.java
@@ -0,0 +1,65 @@
+package com.farsunset.cim.component.logger;
+
+import com.farsunset.cim.handler.LoggingHandler;
+import com.farsunset.cim.model.Ping;
+import com.farsunset.cim.model.Pong;
+import io.netty.channel.ChannelHandler;
+import io.netty.channel.ChannelHandlerContext;
+import io.netty.channel.ChannelPromise;
+import org.springframework.stereotype.Component;
+
+/**
+ * 自定义 CIM事件日志打印,重写方法时注意需要有以下2种之一!!!
+ * 1、调用对应的ctx.fireXX(msg)方法;
+ * 2、调用supper
+ */
+@ChannelHandler.Sharable
+@Component
+public class CIMEventLogger extends LoggingHandler {
+
+ /**
+ * 不打印客户端发送的Pong日志
+ * @param ctx
+ * @param msg
+ * @throws Exception
+ */
+ @Override
+ public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
+
+ if (msg instanceof Pong){
+ ctx.fireChannelRead(msg);
+ return;
+ }
+
+ super.channelRead(ctx,msg);
+ }
+
+
+ /**
+ * 不打印服务端发送的Ping日志
+ * @param ctx
+ * @param msg
+ * @throws Exception
+ */
+ @Override
+ public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) throws Exception {
+
+ if (msg instanceof Ping){
+ ctx.write(msg, promise);
+ return;
+ }
+
+ super.write(ctx,msg,promise);
+ }
+
+ /**
+ * 不打长连接空闲事件日志
+ * @param ctx
+ * @param evt
+ */
+ @Override
+ public void userEventTriggered(ChannelHandlerContext ctx, Object evt) {
+ ctx.fireUserEventTriggered(evt);
+ }
+
+}
diff --git a/cim-boot-server/src/main/java/com/farsunset/cim/config/CIMConfig.java b/cim-boot-server/src/main/java/com/farsunset/cim/config/CIMConfig.java
index 9b8f505..3cfac27 100644
--- a/cim-boot-server/src/main/java/com/farsunset/cim/config/CIMConfig.java
+++ b/cim-boot-server/src/main/java/com/farsunset/cim/config/CIMConfig.java
@@ -26,6 +26,7 @@ import com.farsunset.cim.acceptor.WebsocketAcceptor;
import com.farsunset.cim.acceptor.config.SocketConfig;
import com.farsunset.cim.acceptor.config.WebsocketConfig;
import com.farsunset.cim.component.handler.annotation.CIMHandler;
+import com.farsunset.cim.component.logger.CIMEventLogger;
import com.farsunset.cim.component.predicate.AuthPredicate;
import com.farsunset.cim.config.properties.APNsProperties;
import com.farsunset.cim.config.properties.CIMAppSocketProperties;
@@ -76,7 +77,7 @@ public class CIMConfig implements CIMRequestHandler, ApplicationListenercom.farsunset
cim-server-sdk-netty
- 4.2.7
+ 4.2.8
jar
${project.groupId}:${project.artifactId}
diff --git a/cim-server-sdk/src/main/java/com/farsunset/cim/acceptor/AppSocketAcceptor.java b/cim-server-sdk/src/main/java/com/farsunset/cim/acceptor/AppSocketAcceptor.java
index 6fce197..f9b90d0 100644
--- a/cim-server-sdk/src/main/java/com/farsunset/cim/acceptor/AppSocketAcceptor.java
+++ b/cim-server-sdk/src/main/java/com/farsunset/cim/acceptor/AppSocketAcceptor.java
@@ -63,7 +63,7 @@ public class AppSocketAcceptor extends NioSocketAcceptor {
public void initChannel(SocketChannel ch){
ch.pipeline().addLast(new AppMessageDecoder());
ch.pipeline().addLast(new AppMessageEncoder());
- ch.pipeline().addLast(loggingHandler);
+ ch.pipeline().addLast(socketConfig.getLoggingHandler() == null ? defaultLoggingHandler : socketConfig.getLoggingHandler() );
ch.pipeline().addLast(new IdleStateHandler(socketConfig.getReadIdle().getSeconds(), socketConfig.getWriteIdle().getSeconds(), 0, TimeUnit.SECONDS));
ch.pipeline().addLast(AppSocketAcceptor.this);
}
diff --git a/cim-server-sdk/src/main/java/com/farsunset/cim/acceptor/NioSocketAcceptor.java b/cim-server-sdk/src/main/java/com/farsunset/cim/acceptor/NioSocketAcceptor.java
index 920bda8..9c20ffb 100644
--- a/cim-server-sdk/src/main/java/com/farsunset/cim/acceptor/NioSocketAcceptor.java
+++ b/cim-server-sdk/src/main/java/com/farsunset/cim/acceptor/NioSocketAcceptor.java
@@ -44,7 +44,7 @@ abstract class NioSocketAcceptor extends SimpleChannelInboundHandler{
protected final Logger logger = LoggerFactory.getLogger(getClass());
- protected final ChannelHandler loggingHandler = new LoggingHandler();
+ protected final ChannelHandler defaultLoggingHandler = new LoggingHandler();
protected final SocketConfig socketConfig;
diff --git a/cim-server-sdk/src/main/java/com/farsunset/cim/acceptor/WebsocketAcceptor.java b/cim-server-sdk/src/main/java/com/farsunset/cim/acceptor/WebsocketAcceptor.java
index 2572d63..d30fd84 100644
--- a/cim-server-sdk/src/main/java/com/farsunset/cim/acceptor/WebsocketAcceptor.java
+++ b/cim-server-sdk/src/main/java/com/farsunset/cim/acceptor/WebsocketAcceptor.java
@@ -107,7 +107,7 @@ public class WebsocketAcceptor extends NioSocketAcceptor {
ch.pipeline().addLast(new WebMessageEncoder());
}
ch.pipeline().addLast(new IdleStateHandler(config.getReadIdle().getSeconds(), config.getWriteIdle().getSeconds(), 0, TimeUnit.SECONDS));
- ch.pipeline().addLast(loggingHandler);
+ ch.pipeline().addLast(socketConfig.getLoggingHandler() == null ? defaultLoggingHandler : socketConfig.getLoggingHandler() );
ch.pipeline().addLast(WebsocketAcceptor.this);
ch.pipeline().addLast(illegalRequestHandler);
}
diff --git a/cim-server-sdk/src/main/java/com/farsunset/cim/acceptor/config/SocketConfig.java b/cim-server-sdk/src/main/java/com/farsunset/cim/acceptor/config/SocketConfig.java
index 020a6d4..6cf1dda 100644
--- a/cim-server-sdk/src/main/java/com/farsunset/cim/acceptor/config/SocketConfig.java
+++ b/cim-server-sdk/src/main/java/com/farsunset/cim/acceptor/config/SocketConfig.java
@@ -22,6 +22,7 @@
package com.farsunset.cim.acceptor.config;
import com.farsunset.cim.handler.CIMRequestHandler;
+import com.farsunset.cim.handler.LoggingHandler;
import java.time.Duration;
@@ -67,6 +68,13 @@ public class SocketConfig {
*/
private int maxPongTimeout = 1;
+ /**
+ * 自定义日志打印处理器,可不设置
+ */
+
+ private LoggingHandler loggingHandler;
+
+
public Integer getPort() {
return port == null || port <= 0 ? DEFAULT_PORT : port;
}
@@ -87,6 +95,14 @@ public class SocketConfig {
return enable;
}
+ public void setLoggingHandler(LoggingHandler loggingHandler) {
+ this.loggingHandler = loggingHandler;
+ }
+
+ public LoggingHandler getLoggingHandler() {
+ return loggingHandler;
+ }
+
public void setEnable(boolean enable) {
this.enable = enable;
}
diff --git a/cim-server-sdk/src/main/java/com/farsunset/cim/acceptor/config/WebsocketConfig.java b/cim-server-sdk/src/main/java/com/farsunset/cim/acceptor/config/WebsocketConfig.java
index 3966543..434547e 100644
--- a/cim-server-sdk/src/main/java/com/farsunset/cim/acceptor/config/WebsocketConfig.java
+++ b/cim-server-sdk/src/main/java/com/farsunset/cim/acceptor/config/WebsocketConfig.java
@@ -23,6 +23,7 @@ package com.farsunset.cim.acceptor.config;
import com.farsunset.cim.auth.AuthPredicateInfo;
import com.farsunset.cim.constant.WebsocketProtocol;
+import com.farsunset.cim.handler.LoggingHandler;
import java.util.function.Predicate;
@@ -52,6 +53,12 @@ public class WebsocketConfig extends SocketConfig{
*/
private Predicate authPredicate;
+ /**
+ * 自定义日志打印处理器,可不设置
+ */
+
+ private LoggingHandler loggingHandler;
+
@Override
public Integer getPort() {
@@ -81,4 +88,12 @@ public class WebsocketConfig extends SocketConfig{
public Predicate getAuthPredicate() {
return authPredicate;
}
+
+ public LoggingHandler getLoggingHandler() {
+ return loggingHandler;
+ }
+
+ public void setLoggingHandler(LoggingHandler loggingHandler) {
+ this.loggingHandler = loggingHandler;
+ }
}