This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 284f31ecd17e3a27cff07a3fdbee695b34de5d53
Author: Claus Ibsen <[email protected]>
AuthorDate: Mon May 18 12:28:36 2020 +0200

    CAMEL-15045: Allow to configure route startup logging level. For example if 
you have 100+ routes it may be annoying with a log per route.
---
 .../main/java/org/apache/camel/spi/RouteController.java | 13 +++++++++++++
 .../camel/impl/engine/DefaultRouteController.java       | 13 +++++++++++++
 .../camel/impl/engine/InternalRouteController.java      | 11 +++++++++++
 .../camel/impl/engine/InternalRouteStartupManager.java  | 13 ++++++++++---
 .../camel/impl/lw/LightweightRuntimeCamelContext.java   | 11 +++++++++++
 .../camel/processor/RouteStartupLoggingLevelTest.java}  | 17 ++++++++++-------
 .../management/mbean/ManagedRouteControllerMBean.java   |  3 +++
 .../camel/management/mbean/ManagedRouteController.java  |  9 +++++++++
 .../mbean/ManagedSupervisingRouteController.java        |  9 +++++++++
 9 files changed, 89 insertions(+), 10 deletions(-)

diff --git 
a/core/camel-api/src/main/java/org/apache/camel/spi/RouteController.java 
b/core/camel-api/src/main/java/org/apache/camel/spi/RouteController.java
index 862b816..7333065 100644
--- a/core/camel-api/src/main/java/org/apache/camel/spi/RouteController.java
+++ b/core/camel-api/src/main/java/org/apache/camel/spi/RouteController.java
@@ -20,6 +20,7 @@ import java.util.Collection;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.camel.CamelContextAware;
+import org.apache.camel.LoggingLevel;
 import org.apache.camel.Route;
 import org.apache.camel.ServiceStatus;
 import org.apache.camel.StaticService;
@@ -30,6 +31,18 @@ import org.apache.camel.StaticService;
 public interface RouteController extends CamelContextAware, StaticService {
 
     /**
+     * Gets the logging level used for logging route startup activity.
+     */
+    LoggingLevel getRouteStartupLoggingLevel();
+
+    /**
+     * Sets the logging level used for logging route startup activity.
+     * By default INFO level is used. You can use this to change the level for 
example to OFF if
+     * this kind of logging is not wanted.
+     */
+    void setRouteStartupLoggingLevel(LoggingLevel loggingLevel);
+
+    /**
      * Enables supervising {@link RouteController}.
      */
     SupervisingRouteController supervising();
diff --git 
a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultRouteController.java
 
b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultRouteController.java
index 5eefe65..b783072 100644
--- 
a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultRouteController.java
+++ 
b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultRouteController.java
@@ -22,6 +22,7 @@ import java.util.concurrent.TimeUnit;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.ExtendedCamelContext;
+import org.apache.camel.LoggingLevel;
 import org.apache.camel.NonManagedService;
 import org.apache.camel.Route;
 import org.apache.camel.ServiceStatus;
@@ -41,6 +42,8 @@ public class DefaultRouteController extends ServiceSupport 
implements RouteContr
 
     private CamelContext camelContext;
 
+    private LoggingLevel routeStartupLoggingLevel = LoggingLevel.INFO;
+
     public DefaultRouteController() {
         this(null);
     }
@@ -63,6 +66,16 @@ public class DefaultRouteController extends ServiceSupport 
implements RouteContr
         return camelContext;
     }
 
+    @Override
+    public LoggingLevel getRouteStartupLoggingLevel() {
+        return routeStartupLoggingLevel;
+    }
+
+    @Override
+    public void setRouteStartupLoggingLevel(LoggingLevel 
routeStartupLoggingLevel) {
+        this.routeStartupLoggingLevel = routeStartupLoggingLevel;
+    }
+
     // ***************************************************
     // Route management
     // ***************************************************
diff --git 
a/core/camel-base/src/main/java/org/apache/camel/impl/engine/InternalRouteController.java
 
b/core/camel-base/src/main/java/org/apache/camel/impl/engine/InternalRouteController.java
index f83d717..d14001f 100644
--- 
a/core/camel-base/src/main/java/org/apache/camel/impl/engine/InternalRouteController.java
+++ 
b/core/camel-base/src/main/java/org/apache/camel/impl/engine/InternalRouteController.java
@@ -20,6 +20,7 @@ import java.util.Collection;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.LoggingLevel;
 import org.apache.camel.Route;
 import org.apache.camel.ServiceStatus;
 import org.apache.camel.spi.RouteController;
@@ -37,6 +38,16 @@ class InternalRouteController implements RouteController {
     }
 
     @Override
+    public LoggingLevel getRouteStartupLoggingLevel() {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void setRouteStartupLoggingLevel(LoggingLevel loggingLevel) {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
     public SupervisingRouteController supervising() {
         throw new UnsupportedOperationException();
     }
diff --git 
a/core/camel-base/src/main/java/org/apache/camel/impl/engine/InternalRouteStartupManager.java
 
b/core/camel-base/src/main/java/org/apache/camel/impl/engine/InternalRouteStartupManager.java
index 1db7067..d8f272a 100644
--- 
a/core/camel-base/src/main/java/org/apache/camel/impl/engine/InternalRouteStartupManager.java
+++ 
b/core/camel-base/src/main/java/org/apache/camel/impl/engine/InternalRouteStartupManager.java
@@ -27,12 +27,14 @@ import java.util.TreeMap;
 import org.apache.camel.Consumer;
 import org.apache.camel.Endpoint;
 import org.apache.camel.FailedToStartRouteException;
+import org.apache.camel.LoggingLevel;
 import org.apache.camel.MultipleConsumersSupport;
 import org.apache.camel.Route;
 import org.apache.camel.ServiceStatus;
 import org.apache.camel.StartupListener;
 import org.apache.camel.StatefulService;
 import org.apache.camel.SuspendableService;
+import org.apache.camel.spi.CamelLogger;
 import org.apache.camel.spi.LifecycleStrategy;
 import org.apache.camel.spi.RouteStartupOrder;
 import org.apache.camel.support.OrderedComparator;
@@ -53,6 +55,7 @@ class InternalRouteStartupManager {
 
     private final ThreadLocal<Route> setupRoute = new ThreadLocal<>();
     private final AbstractCamelContext abstractCamelContext;
+    private final CamelLogger routeLogger = new CamelLogger(LOG);
 
     public InternalRouteStartupManager(AbstractCamelContext 
abstractCamelContext) {
         this.abstractCamelContext = abstractCamelContext;
@@ -272,6 +275,10 @@ class InternalRouteStartupManager {
         doStartOrResumeRouteConsumers(inputs, false, addingRoutes);
     }
 
+    private LoggingLevel getRouteLoggerLogLevel() {
+        return 
abstractCamelContext.getRouteController().getRouteStartupLoggingLevel();
+    }
+
     private void doStartOrResumeRouteConsumers(Map<Integer, 
DefaultRouteStartupOrder> inputs, boolean resumeOnly, boolean addingRoute) 
throws Exception {
         List<Endpoint> routeInputs = new ArrayList<>();
 
@@ -284,7 +291,7 @@ class InternalRouteStartupManager {
             // to not be auto started
             boolean autoStartup = routeService.isAutoStartup();
             if (addingRoute && !autoStartup) {
-                LOG.info("Skipping starting of route {} as it's configured 
with autoStartup=false", routeService.getId());
+                routeLogger.log("Skipping starting of route " + 
routeService.getId() + " as it's configured with autoStartup=false", 
getRouteLoggerLogLevel());
                 continue;
             }
 
@@ -331,7 +338,7 @@ class InternalRouteStartupManager {
                     // use basic endpoint uri to not log verbose details or 
potential sensitive data
                     String uri = endpoint.getEndpointBaseUri();
                     uri = URISupport.sanitizeUri(uri);
-                    LOG.info("Route: {} resumed and consuming from: {}", 
route.getId(), uri);
+                    routeLogger.log("Route: " +  route.getId() + " resumed and 
consuming from: " + uri, getRouteLoggerLogLevel());
                 } else {
                     // when starting we should invoke the lifecycle strategies
                     for (LifecycleStrategy strategy : 
abstractCamelContext.getLifecycleStrategies()) {
@@ -348,7 +355,7 @@ class InternalRouteStartupManager {
                     // use basic endpoint uri to not log verbose details or 
potential sensitive data
                     String uri = endpoint.getEndpointBaseUri();
                     uri = URISupport.sanitizeUri(uri);
-                    LOG.info("Route: {} started and consuming from: {}", 
route.getId(), uri);
+                    routeLogger.log("Route: " +  route.getId() + " started and 
consuming from: " + uri, getRouteLoggerLogLevel());
                 }
 
                 routeInputs.add(endpoint);
diff --git 
a/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightRuntimeCamelContext.java
 
b/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightRuntimeCamelContext.java
index aa54219..2001fc8 100644
--- 
a/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightRuntimeCamelContext.java
+++ 
b/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightRuntimeCamelContext.java
@@ -43,6 +43,7 @@ import org.apache.camel.ExtendedCamelContext;
 import org.apache.camel.FluentProducerTemplate;
 import org.apache.camel.GlobalEndpointConfiguration;
 import org.apache.camel.IsSingleton;
+import org.apache.camel.LoggingLevel;
 import org.apache.camel.NoSuchEndpointException;
 import org.apache.camel.NoSuchLanguageException;
 import org.apache.camel.Processor;
@@ -1750,6 +1751,16 @@ public class LightweightRuntimeCamelContext implements 
ExtendedCamelContext, Cat
     public RouteController getInternalRouteController() {
         return new RouteController() {
             @Override
+            public LoggingLevel getRouteStartupLoggingLevel() {
+                throw new UnsupportedOperationException();
+            }
+
+            @Override
+            public void setRouteStartupLoggingLevel(LoggingLevel loggingLevel) 
{
+                throw new UnsupportedOperationException();
+            }
+
+            @Override
             public SupervisingRouteController supervising() {
                 throw new UnsupportedOperationException();
             }
diff --git 
a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteControllerMBean.java
 
b/core/camel-core/src/test/java/org/apache/camel/processor/RouteStartupLoggingLevelTest.java
similarity index 65%
copy from 
core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteControllerMBean.java
copy to 
core/camel-core/src/test/java/org/apache/camel/processor/RouteStartupLoggingLevelTest.java
index 818765d..e5fd653 100644
--- 
a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteControllerMBean.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/processor/RouteStartupLoggingLevelTest.java
@@ -14,14 +14,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.api.management.mbean;
+package org.apache.camel.processor;
 
-import java.util.Collection;
+import org.apache.camel.CamelContext;
+import org.apache.camel.LoggingLevel;
 
-import org.apache.camel.api.management.ManagedAttribute;
+public class RouteStartupLoggingLevelTest extends SimpleMockTest {
 
-public interface ManagedRouteControllerMBean extends ManagedServiceMBean {
-
-    @ManagedAttribute(description = "Controlled Routes")
-    Collection<String> getControlledRoutes();
+    @Override
+    protected CamelContext createCamelContext() throws Exception {
+        CamelContext context = super.createCamelContext();
+        
context.getRouteController().setRouteStartupLoggingLevel(LoggingLevel.WARN);
+        return context;
+    }
 }
diff --git 
a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteControllerMBean.java
 
b/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteControllerMBean.java
index 818765d..00246d3 100644
--- 
a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteControllerMBean.java
+++ 
b/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteControllerMBean.java
@@ -24,4 +24,7 @@ public interface ManagedRouteControllerMBean extends 
ManagedServiceMBean {
 
     @ManagedAttribute(description = "Controlled Routes")
     Collection<String> getControlledRoutes();
+
+    @ManagedAttribute(description = "Logging level used for logging route 
startup activity")
+    String getRouteStartupLoggingLevel();
 }
diff --git 
a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedRouteController.java
 
b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedRouteController.java
index f0c72f4..9e83661 100644
--- 
a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedRouteController.java
+++ 
b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedRouteController.java
@@ -55,4 +55,13 @@ public class ManagedRouteController extends ManagedService 
implements ManagedRou
 
         return Collections.emptyList();
     }
+
+    @Override
+    public String getRouteStartupLoggingLevel() {
+        if (controller != null) {
+            return controller.getRouteStartupLoggingLevel().name();
+        } else {
+            return null;
+        }
+    }
 }
diff --git 
a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedSupervisingRouteController.java
 
b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedSupervisingRouteController.java
index b0bbfc2..2d79155 100644
--- 
a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedSupervisingRouteController.java
+++ 
b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedSupervisingRouteController.java
@@ -132,6 +132,15 @@ public class ManagedSupervisingRouteController extends 
ManagedService implements
     }
 
     @Override
+    public String getRouteStartupLoggingLevel() {
+        if (controller != null) {
+            return controller.getRouteStartupLoggingLevel().name();
+        } else {
+            return null;
+        }
+    }
+
+    @Override
     public Collection<String> getRestartingRoutes() {
         if (controller != null) {
             return controller.getRestartingRoutes().stream()

Reply via email to