diff --git a/src/main/java/org/redkale/boot/ClassFilter.java b/src/main/java/org/redkale/boot/ClassFilter.java index 9f4b73e93..68f788372 100644 --- a/src/main/java/org/redkale/boot/ClassFilter.java +++ b/src/main/java/org/redkale/boot/ClassFilter.java @@ -33,8 +33,6 @@ public final class ClassFilter { private static final Logger logger = Logger.getLogger(ClassFilter.class.getName()); //日志对象 - private static final boolean finest = logger.isLoggable(Level.FINEST); //日志级别 - private final Set> entrys = new HashSet<>(); //符合条件的结果 private final Set> expectEntrys = new HashSet<>(); //准备符合条件的结果 @@ -210,7 +208,7 @@ public final class ClassFilter { entrys.add(new FilterEntry(clazz, autoscan, false, property)); } } catch (Throwable cfe) { - if (finest && !clazzname.startsWith("sun.") && !clazzname.startsWith("javax.") + if (logger.isLoggable(Level.FINEST) && !clazzname.startsWith("sun.") && !clazzname.startsWith("javax.") && !clazzname.startsWith("com.sun.") && !clazzname.startsWith("jdk.") && !clazzname.startsWith("META-INF") && !clazzname.startsWith("com.mysql.") && !clazzname.startsWith("com.microsoft.") && !clazzname.startsWith("freemarker.") && !clazzname.startsWith("org.redkale") && (clazzname.contains("Service") || clazzname.contains("Servlet"))) { diff --git a/src/main/java/org/redkale/boot/NodeHttpServer.java b/src/main/java/org/redkale/boot/NodeHttpServer.java index 61b1b1497..ad74ace0f 100644 --- a/src/main/java/org/redkale/boot/NodeHttpServer.java +++ b/src/main/java/org/redkale/boot/NodeHttpServer.java @@ -380,7 +380,6 @@ public class NodeHttpServer extends NodeServer { } } final ClassFilter restFilter = ClassFilter.create(serverClassLoader, null, application.isCompileMode() ? "" : restConf.getValue("includes", ""), application.isCompileMode() ? "" : restConf.getValue("excludes", ""), includeValues, excludeValues); - final boolean finest = logger.isLoggable(Level.FINEST); List> list = new ArrayList(webSocketFilter.getFilterEntrys()); for (FilterEntry en : list) { @@ -412,7 +411,9 @@ public class NodeHttpServer extends NodeServer { WebServlet ws = servlet.getClass().getAnnotation(WebServlet.class); if (ws != null && !ws.repair()) prefix2 = ""; resourceFactory.inject(servlet, NodeHttpServer.this); - if (finest) logger.finest(localThreadName + " " + stype.getName() + " create a RestWebSocketServlet"); + if (logger.isLoggable(Level.FINEST)) { + logger.finest(localThreadName + " " + stype.getName() + " create a RestWebSocketServlet"); + } if (webss != null) { String[] mappings = servlet.getClass().getAnnotation(WebServlet.class).value(); for (int i = 0; i < mappings.length; i++) { diff --git a/src/main/java/org/redkale/mq/HttpMessageClusterClient.java b/src/main/java/org/redkale/mq/HttpMessageClusterClient.java index 342e22ff9..7503aedde 100644 --- a/src/main/java/org/redkale/mq/HttpMessageClusterClient.java +++ b/src/main/java/org/redkale/mq/HttpMessageClusterClient.java @@ -52,9 +52,6 @@ public class HttpMessageClusterClient extends HttpMessageClient { Objects.requireNonNull(clusterAgent); this.localClient = new HttpMessageLocalClient(application, resourceName); this.clusterAgent = clusterAgent; - this.finest = logger.isLoggable(Level.FINEST); - this.finer = logger.isLoggable(Level.FINER); - this.fine = logger.isLoggable(Level.FINE); } @Override @@ -89,7 +86,7 @@ public class HttpMessageClusterClient extends HttpMessageClient { final String localModule = module; return clusterAgent.queryMqtpAddress("mqtp", module, resname).thenCompose(addrmap -> { if (addrmap == null || addrmap.isEmpty()) { - if (fine) logger.log(Level.FINE, "mqtpAsync.broadcastMessage: module=" + localModule + ", resname=" + resname + ", addrmap is empty"); + if (logger.isLoggable(Level.FINE)) logger.log(Level.FINE, "mqtpAsync.broadcastMessage: module=" + localModule + ", resname=" + resname + ", addrmap is empty"); return new HttpResult().status(404).toFuture(); } final Map clientHeaders = new LinkedHashMap<>(); @@ -118,7 +115,7 @@ public class HttpMessageClusterClient extends HttpMessageClient { if (paramstr != null) clientBody = paramstr.getBytes(StandardCharsets.UTF_8); } List futures = new ArrayList<>(); - if (finest) logger.log(Level.FINEST, "mqtpAsync: module=" + localModule + ", resname=" + resname + ", addrmap=" + addrmap); + if (logger.isLoggable(Level.FINEST)) logger.log(Level.FINEST, "mqtpAsync: module=" + localModule + ", resname=" + resname + ", addrmap=" + addrmap); for (Map.Entry> en : addrmap.entrySet()) { String realmodule = en.getKey(); Collection addrs = en.getValue(); @@ -126,7 +123,7 @@ public class HttpMessageClusterClient extends HttpMessageClient { String suburi = req.getRequestURI(); suburi = suburi.substring(1); //跳过 / suburi = "/" + realmodule + suburi.substring(suburi.indexOf('/')); - futures.add(forEachCollectionFuture(finest, userid, req, (req.getPath() != null && !req.getPath().isEmpty() ? req.getPath() : "") + suburi, clientHeaders, clientBody, addrs.iterator())); + futures.add(forEachCollectionFuture(logger.isLoggable(Level.FINEST), userid, req, (req.getPath() != null && !req.getPath().isEmpty() ? req.getPath() : "") + suburi, clientHeaders, clientBody, addrs.iterator())); } if (futures.isEmpty()) return CompletableFuture.completedFuture(null); return CompletableFuture.allOf(futures.toArray(new CompletableFuture[futures.size()])).thenApply(v -> null); @@ -140,10 +137,10 @@ public class HttpMessageClusterClient extends HttpMessageClient { Map headers = req.getHeaders(); String resname = headers == null ? "" : headers.getOrDefault(Rest.REST_HEADER_RESOURCE_NAME, ""); final String localModule = module; - if (finest) logger.log(Level.FINEST, "httpAsync.queryHttpAddress: module=" + localModule + ", resname=" + resname); + if (logger.isLoggable(Level.FINEST)) logger.log(Level.FINEST, "httpAsync.queryHttpAddress: module=" + localModule + ", resname=" + resname); return clusterAgent.queryHttpAddress("http", module, resname).thenCompose(addrs -> { if (addrs == null || addrs.isEmpty()) { - if (fine) logger.log(Level.FINE, "httpAsync." + (produce ? "produceMessage" : "sendMessage") + ": module=" + localModule + ", resname=" + resname + ", addrmap is empty"); + if (logger.isLoggable(Level.FINE)) logger.log(Level.FINE, "httpAsync." + (produce ? "produceMessage" : "sendMessage") + ": module=" + localModule + ", resname=" + resname + ", addrmap is empty"); return new HttpResult().status(404).toFuture(); } final Map clientHeaders = new LinkedHashMap<>(); @@ -176,8 +173,8 @@ public class HttpMessageClusterClient extends HttpMessageClient { String paramstr = req.getParametersToString(); if (paramstr != null) clientBody = paramstr.getBytes(StandardCharsets.UTF_8); } - if (finest) logger.log(Level.FINEST, "httpAsync: module=" + localModule + ", resname=" + resname + ", enter forEachCollectionFuture"); - return forEachCollectionFuture(finest, userid, req, (req.getPath() != null && !req.getPath().isEmpty() ? req.getPath() : "") + req.getRequestURI(), clientHeaders, clientBody, addrs.iterator()); + if (logger.isLoggable(Level.FINEST)) logger.log(Level.FINEST, "httpAsync: module=" + localModule + ", resname=" + resname + ", enter forEachCollectionFuture"); + return forEachCollectionFuture(logger.isLoggable(Level.FINEST), userid, req, (req.getPath() != null && !req.getPath().isEmpty() ? req.getPath() : "") + req.getRequestURI(), clientHeaders, clientBody, addrs.iterator()); }); } diff --git a/src/main/java/org/redkale/mq/HttpMessageLocalClient.java b/src/main/java/org/redkale/mq/HttpMessageLocalClient.java index e8bfed62a..3c0226987 100644 --- a/src/main/java/org/redkale/mq/HttpMessageLocalClient.java +++ b/src/main/java/org/redkale/mq/HttpMessageLocalClient.java @@ -97,7 +97,7 @@ public class HttpMessageLocalClient extends HttpMessageClient { HttpServlet servlet = findHttpServlet(topic); CompletableFuture future = new CompletableFuture(); if (servlet == null) { - if (fine) logger.log(Level.FINE, "sendMessage: request=" + request + ", not found servlet"); + if (logger.isLoggable(Level.FINE)) logger.log(Level.FINE, "sendMessage: request=" + request + ", not found servlet"); future.completeExceptionally(new RuntimeException("404 Not Found " + topic)); return future; } @@ -116,7 +116,7 @@ public class HttpMessageLocalClient extends HttpMessageClient { public CompletableFuture> sendMessage(String topic, Serializable userid, String groupid, HttpSimpleRequest request, AtomicLong counter) { HttpServlet servlet = findHttpServlet(topic); if (servlet == null) { - if (fine) logger.log(Level.FINE, "sendMessage: request=" + request + ", not found servlet"); + if (logger.isLoggable(Level.FINE)) logger.log(Level.FINE, "sendMessage: request=" + request + ", not found servlet"); return CompletableFuture.completedFuture(new HttpResult().status(404)); } HttpRequest req = new HttpMessageLocalRequest(context(), request, userid); @@ -144,7 +144,7 @@ public class HttpMessageLocalClient extends HttpMessageClient { HttpDispatcherServlet ps = dispatcherServlet(); HttpServlet servlet = ps.findServletByTopic(topic); if (servlet == null) { - if (fine) logger.log(Level.FINE, "produceMessage: request=" + request + ", not found servlet"); + if (logger.isLoggable(Level.FINE)) logger.log(Level.FINE, "produceMessage: request=" + request + ", not found servlet"); return; } HttpRequest req = new HttpMessageLocalRequest(context(), request, userid); diff --git a/src/main/java/org/redkale/mq/HttpMessageProcessor.java b/src/main/java/org/redkale/mq/HttpMessageProcessor.java index 2456d13d4..94f211a67 100644 --- a/src/main/java/org/redkale/mq/HttpMessageProcessor.java +++ b/src/main/java/org/redkale/mq/HttpMessageProcessor.java @@ -25,12 +25,6 @@ import org.redkale.util.*; */ public class HttpMessageProcessor implements MessageProcessor { - protected final boolean finest; - - protected final boolean finer; - - protected final boolean fine; - protected final Logger logger; protected HttpMessageClient messageClient; @@ -65,9 +59,6 @@ public class HttpMessageProcessor implements MessageProcessor { public HttpMessageProcessor(Logger logger, HttpMessageClient messageClient, MessageProducers producers, NodeHttpServer server, Service service, HttpServlet servlet) { this.logger = logger; - this.finest = logger.isLoggable(Level.FINEST); - this.finer = logger.isLoggable(Level.FINER); - this.fine = logger.isLoggable(Level.FINE); this.messageClient = messageClient; this.producers = producers; this.server = server; @@ -110,16 +101,16 @@ public class HttpMessageProcessor implements MessageProcessor { server.getHttpServer().getContext().execute(servlet, request, response); long o = System.currentTimeMillis() - now; - if ((cha > 1000 || e > 100 || o > 1000) && fine) { + if ((cha > 1000 || e > 100 || o > 1000) && logger.isLoggable(Level.FINE)) { logger.log(Level.FINE, "HttpMessageProcessor.process (mqs.delays = " + cha + " ms, mqs.blocks = " + e + " ms, mqs.executes = " + o + " ms) message: " + message); - } else if ((cha > 50 || e > 10 || o > 50) && finer) { + } else if ((cha > 50 || e > 10 || o > 50) && logger.isLoggable(Level.FINER)) { logger.log(Level.FINER, "HttpMessageProcessor.process (mq.delays = " + cha + " ms, mq.blocks = " + e + " ms, mq.executes = " + o + " ms) message: " + message); - } else if (finest) { + } else if (logger.isLoggable(Level.FINEST)) { logger.log(Level.FINEST, "HttpMessageProcessor.process (mq.delay = " + cha + " ms, mq.block = " + e + " ms, mq.execute = " + o + " ms) message: " + message); } } catch (Throwable ex) { if (message.getRespTopic() != null && !message.getRespTopic().isEmpty()) { - HttpMessageResponse.finishHttpResult(finest, request == null ? null : request.getRespConvert(), + HttpMessageResponse.finishHttpResult(logger.isLoggable(Level.FINEST), request == null ? null : request.getRespConvert(), null, message, callback, messageClient, producers.getProducer(message), message.getRespTopic(), new HttpResult().status(500)); } logger.log(Level.SEVERE, HttpMessageProcessor.class.getSimpleName() + " process error, message=" + message, ex instanceof CompletionException ? ((CompletionException) ex).getCause() : ex); diff --git a/src/main/java/org/redkale/mq/HttpMessageResponse.java b/src/main/java/org/redkale/mq/HttpMessageResponse.java index 3d0ef390a..12b124a26 100644 --- a/src/main/java/org/redkale/mq/HttpMessageResponse.java +++ b/src/main/java/org/redkale/mq/HttpMessageResponse.java @@ -36,8 +36,6 @@ public class HttpMessageResponse extends HttpResponse { protected MessageProducer producer; - protected boolean finest; - protected Runnable callback; public HttpMessageResponse(HttpContext context, HttpMessageClient messageClient, final Supplier respSupplier, final Consumer respConsumer) { @@ -61,7 +59,6 @@ public class HttpMessageResponse extends HttpResponse { this.message = message; this.callback = callback; this.producer = producer; - this.finest = producer.logger.isLoggable(Level.FINEST); } public HttpMessageRequest request() { @@ -69,11 +66,11 @@ public class HttpMessageResponse extends HttpResponse { } public void finishHttpResult(Type type, HttpResult result) { - finishHttpResult(this.finest, ((HttpMessageRequest) this.request).getRespConvert(), type, this.message, this.callback, this.messageClient, this.producer, message.getRespTopic(), result); + finishHttpResult(producer.logger.isLoggable(Level.FINEST), ((HttpMessageRequest) this.request).getRespConvert(), type, this.message, this.callback, this.messageClient, this.producer, message.getRespTopic(), result); } public void finishHttpResult(Type type, Convert respConvert, HttpResult result) { - finishHttpResult(this.finest, respConvert == null ? ((HttpMessageRequest) this.request).getRespConvert() : respConvert, type, this.message, this.callback, this.messageClient, this.producer, message.getRespTopic(), result); + finishHttpResult(producer.logger.isLoggable(Level.FINEST), respConvert == null ? ((HttpMessageRequest) this.request).getRespConvert() : respConvert, type, this.message, this.callback, this.messageClient, this.producer, message.getRespTopic(), result); } public static void finishHttpResult(boolean finest, Convert respConvert, Type type, MessageRecord msg, Runnable callback, MessageClient messageClient, MessageProducer producer, String resptopic, HttpResult result) { @@ -109,7 +106,6 @@ public class HttpMessageResponse extends HttpResponse { this.message = null; this.producer = null; this.callback = null; - this.finest = false; return rs; } @@ -207,7 +203,7 @@ public class HttpMessageResponse extends HttpResponse { public void finish(int status, String msg) { if (status > 400) { producer.logger.log(Level.WARNING, "HttpMessageResponse.finish status: " + status + ", uri: " + this.request.getRequestURI() + ", message: " + this.message); - } else if (finest) { + } else if (producer.logger.isLoggable(Level.FINEST)) { producer.logger.log(Level.FINEST, "HttpMessageResponse.finish status: " + status); } if (this.message.isEmptyRespTopic()) { diff --git a/src/main/java/org/redkale/mq/MessageClient.java b/src/main/java/org/redkale/mq/MessageClient.java index 10d635c55..c6639457f 100644 --- a/src/main/java/org/redkale/mq/MessageClient.java +++ b/src/main/java/org/redkale/mq/MessageClient.java @@ -38,20 +38,11 @@ public abstract class MessageClient { protected String respConsumerid; - protected boolean finest; - - protected boolean finer; - - protected boolean fine; - private final String clazzName; protected MessageClient(MessageAgent messageAgent) { this.messageAgent = messageAgent; this.msgSeqno = messageAgent == null ? new AtomicLong() : messageAgent.msgSeqno; - this.finest = messageAgent == null ? false : messageAgent.logger.isLoggable(Level.FINEST); - this.finer = messageAgent == null ? false : messageAgent.logger.isLoggable(Level.FINER); - this.fine = messageAgent == null ? false : messageAgent.logger.isLoggable(Level.FINE); this.clazzName = getClass().getSimpleName(); } @@ -62,6 +53,7 @@ public abstract class MessageClient { protected CompletableFuture sendMessage(final MessageRecord message, boolean needresp, AtomicLong counter) { CompletableFuture future = new CompletableFuture<>(); + boolean finest = messageAgent != null && messageAgent.logger.isLoggable(Level.FINEST); try { if (this.respConsumer == null) { synchronized (this) { @@ -81,9 +73,9 @@ public abstract class MessageClient { if (finest) messageAgent.logger.log(Level.FINEST, clazzName + ".MessageRespFutureNode.receive (mq.delay = " + cha + "ms, mq.seqid = " + msg.getSeqid() + ")"); node.future.complete(msg); long cha2 = System.currentTimeMillis() - now; - if ((cha > 1000 || cha2 > 1000) && fine) { + if ((cha > 1000 || cha2 > 1000) && messageAgent != null && messageAgent.logger.isLoggable(Level.FINE)) { messageAgent.logger.log(Level.FINE, clazzName + ".MessageRespFutureNode.complete (mqs.delays = " + cha + "ms, mqs.completes = " + cha2 + "ms, mqs.counters = " + ncer + ") mqresp.msg: " + formatRespMessage(msg)); - } else if ((cha > 50 || cha2 > 50) && finer) { + } else if ((cha > 50 || cha2 > 50) && messageAgent != null && messageAgent.logger.isLoggable(Level.FINER)) { messageAgent.logger.log(Level.FINER, clazzName + ".MessageRespFutureNode.complete (mq.delays = " + cha + "ms, mq.completes = " + cha2 + "ms, mq.counters = " + ncer + ") mqresp.msg: " + formatRespMessage(msg)); } else if (finest) { messageAgent.logger.log(Level.FINEST, clazzName + ".MessageRespFutureNode.complete (mq.delay = " + cha + "ms, mq.complete = " + cha2 + "ms, mq.counter = " + ncer + ") mqresp.msg: " + formatRespMessage(msg)); diff --git a/src/main/java/org/redkale/mq/SncpMessageProcessor.java b/src/main/java/org/redkale/mq/SncpMessageProcessor.java index 52c8e207d..8af83ebdb 100644 --- a/src/main/java/org/redkale/mq/SncpMessageProcessor.java +++ b/src/main/java/org/redkale/mq/SncpMessageProcessor.java @@ -24,12 +24,6 @@ import org.redkale.util.Traces; */ public class SncpMessageProcessor implements MessageProcessor { - protected final boolean finest; - - protected final boolean finer; - - protected final boolean fine; - protected final Logger logger; protected MessageClient messageClient; @@ -52,9 +46,6 @@ public class SncpMessageProcessor implements MessageProcessor { public SncpMessageProcessor(Logger logger, SncpMessageClient messageClient, MessageProducers producer, NodeSncpServer server, Service service, SncpServlet servlet) { this.logger = logger; - this.finest = logger.isLoggable(Level.FINEST); - this.finer = logger.isLoggable(Level.FINER); - this.fine = logger.isLoggable(Level.FINE); this.messageClient = messageClient; this.producer = producer; this.server = server; @@ -86,11 +77,11 @@ public class SncpMessageProcessor implements MessageProcessor { context.execute(servlet, request, response); long o = System.currentTimeMillis() - now; - if ((cha > 1000 || e > 100 || o > 1000) && fine) { + if ((cha > 1000 || e > 100 || o > 1000) && logger.isLoggable(Level.FINE)) { logger.log(Level.FINE, "SncpMessageProcessor.process (mqs.delays = " + cha + " ms, mqs.blocks = " + e + " ms, mqs.executes = " + o + " ms) message: " + message); - } else if ((cha > 50 || e > 10 || o > 50) && finer) { + } else if ((cha > 50 || e > 10 || o > 50) && logger.isLoggable(Level.FINER)) { logger.log(Level.FINER, "SncpMessageProcessor.process (mq.delays = " + cha + " ms, mq.blocks = " + e + " ms, mq.executes = " + o + " ms) message: " + message); - } else if (finest) { + } else if (logger.isLoggable(Level.FINEST)) { logger.log(Level.FINEST, "SncpMessageProcessor.process (mq.delay = " + cha + " ms, mq.block = " + e + " ms, mq.execute = " + o + " ms) message: " + message); } } catch (Throwable ex) { diff --git a/src/main/java/org/redkale/net/client/Client.java b/src/main/java/org/redkale/net/client/Client.java index 6b73a9873..e6cb7e97e 100644 --- a/src/main/java/org/redkale/net/client/Client.java +++ b/src/main/java/org/redkale/net/client/Client.java @@ -30,8 +30,6 @@ public abstract class Client { protected final Logger logger = Logger.getLogger(this.getClass().getSimpleName()); - protected final boolean finest = logger.isLoggable(Level.FINEST); - protected final AsyncGroup group; //连接构造器 protected final boolean tcp; //是否TCP协议