Murtadha Hubail has submitted this change and it was merged. Change subject: [ASTERIXDB-1554][CONF] Do Not Override Logger Config ......................................................................
[ASTERIXDB-1554][CONF] Do Not Override Logger Config - user model changes: no - storage format changes: no - interface changes: no Details: - Do not override logger config for hyracks/asterix roots if they are already configured. Change-Id: Iff7ed7c094d9044f5959f9e24713302af9774786 Reviewed-on: https://asterix-gerrit.ics.uci.edu/2335 Tested-by: Jenkins <[email protected]> Contrib: Jenkins <[email protected]> Integration-Tests: Jenkins <[email protected]> Reviewed-by: Michael Blow <[email protected]> --- M asterixdb/asterix-app/pom.xml M asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/CCApplication.java M asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/NCApplication.java M hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/util/HyracksConstants.java M hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/pom.xml M hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/BaseCCApplication.java M hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/pom.xml M hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/BaseNCApplication.java A hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/LoggingConfigUtil.java 9 files changed, 60 insertions(+), 25 deletions(-) Approvals: Anon. E. Moose #1000171: Jenkins: Verified; ; Verified Michael Blow: Looks good to me, approved Objections: Jenkins: Violations found diff --git a/asterixdb/asterix-app/pom.xml b/asterixdb/asterix-app/pom.xml index 629bca6..7d7aee5 100644 --- a/asterixdb/asterix-app/pom.xml +++ b/asterixdb/asterix-app/pom.xml @@ -640,10 +640,6 @@ </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-core</artifactId> - </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-jul</artifactId> <version>2.10.0</version> </dependency> diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/CCApplication.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/CCApplication.java index 6baf488..1cefd42 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/CCApplication.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/CCApplication.java @@ -60,6 +60,7 @@ import org.apache.asterix.common.api.INodeJobTracker; import org.apache.asterix.common.config.AsterixExtension; import org.apache.asterix.common.config.ExternalProperties; +import org.apache.asterix.common.config.GlobalConfig; import org.apache.asterix.common.config.MetadataProperties; import org.apache.asterix.common.config.PropertiesAccessor; import org.apache.asterix.common.config.ReplicationProperties; @@ -94,10 +95,10 @@ import org.apache.hyracks.http.api.IServlet; import org.apache.hyracks.http.server.HttpServer; import org.apache.hyracks.http.server.WebManager; +import org.apache.hyracks.util.LoggingConfigUtil; import org.apache.logging.log4j.Level; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.apache.logging.log4j.core.config.Configurator; public class CCApplication extends BaseCCApplication { @@ -191,8 +192,7 @@ @Override protected void configureLoggingLevel(Level level) { super.configureLoggingLevel(level); - LOGGER.info("Setting Asterix log level to " + level); - Configurator.setLevel("org.apache.asterix", level); + LoggingConfigUtil.defaultIfMissing(GlobalConfig.ASTERIX_LOGGER_NAME, level); } protected List<AsterixExtension> getExtensions() { diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/NCApplication.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/NCApplication.java index 0d3b7b5..a23a763 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/NCApplication.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/NCApplication.java @@ -31,6 +31,7 @@ import org.apache.asterix.common.api.INcApplicationContext; import org.apache.asterix.common.config.AsterixExtension; import org.apache.asterix.common.config.ExternalProperties; +import org.apache.asterix.common.config.GlobalConfig; import org.apache.asterix.common.config.MessagingProperties; import org.apache.asterix.common.config.MetadataProperties; import org.apache.asterix.common.config.NodeProperties; @@ -60,10 +61,10 @@ import org.apache.hyracks.control.nc.NodeControllerService; import org.apache.hyracks.http.server.HttpServer; import org.apache.hyracks.http.server.WebManager; +import org.apache.hyracks.util.LoggingConfigUtil; import org.apache.logging.log4j.Level; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.apache.logging.log4j.core.config.Configurator; public class NCApplication extends BaseNCApplication { private static final Logger LOGGER = LogManager.getLogger(); @@ -140,7 +141,7 @@ @Override protected void configureLoggingLevel(Level level) { super.configureLoggingLevel(level); - Configurator.setLevel("org.apache.asterix", level); + LoggingConfigUtil.defaultIfMissing(GlobalConfig.ASTERIX_LOGGER_NAME, level); } protected void configureServers() throws Exception { diff --git a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/util/HyracksConstants.java b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/util/HyracksConstants.java index 8d55235..5609721 100644 --- a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/util/HyracksConstants.java +++ b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/util/HyracksConstants.java @@ -20,6 +20,7 @@ public class HyracksConstants { public static final String KEY_MESSAGE = "HYX:MSG"; + public static final String HYRACKS_LOGGER_NAME = "org.apache.hyracks"; private HyracksConstants() { } diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/pom.xml b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/pom.xml index 763c5ac..ec84637 100644 --- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/pom.xml +++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/pom.xml @@ -97,9 +97,5 @@ <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-core</artifactId> - </dependency> </dependencies> </project> diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/BaseCCApplication.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/BaseCCApplication.java index a7a64cc..dc63481 100644 --- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/BaseCCApplication.java +++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/BaseCCApplication.java @@ -26,16 +26,15 @@ import org.apache.hyracks.api.config.Section; import org.apache.hyracks.api.job.resource.DefaultJobCapacityController; import org.apache.hyracks.api.job.resource.IJobCapacityController; +import org.apache.hyracks.api.util.HyracksConstants; import org.apache.hyracks.control.common.controllers.CCConfig; import org.apache.hyracks.control.common.controllers.ControllerConfig; import org.apache.hyracks.control.common.controllers.NCConfig; +import org.apache.hyracks.util.LoggingConfigUtil; import org.apache.logging.log4j.Level; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.apache.logging.log4j.core.config.Configurator; public class BaseCCApplication implements ICCApplication { - private static final Logger LOGGER = LogManager.getLogger(); + public static final ICCApplication INSTANCE = new BaseCCApplication(); private IConfigManager configManager; @@ -84,8 +83,7 @@ } protected void configureLoggingLevel(Level level) { - LOGGER.info("Setting Hyracks log level to " + level); - Configurator.setLevel("org.apache.hyracks", level); + LoggingConfigUtil.defaultIfMissing(HyracksConstants.HYRACKS_LOGGER_NAME, level); } @Override diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/pom.xml b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/pom.xml index 594b701..65be97b 100644 --- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/pom.xml +++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/pom.xml @@ -87,9 +87,5 @@ <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-core</artifactId> - </dependency> </dependencies> </project> diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/BaseNCApplication.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/BaseNCApplication.java index 9670e42..ea16032 100644 --- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/BaseNCApplication.java +++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/BaseNCApplication.java @@ -28,12 +28,13 @@ import org.apache.hyracks.api.control.CcId; import org.apache.hyracks.api.io.IFileDeviceResolver; import org.apache.hyracks.api.job.resource.NodeCapacity; +import org.apache.hyracks.api.util.HyracksConstants; import org.apache.hyracks.control.common.controllers.CCConfig; import org.apache.hyracks.control.common.controllers.ControllerConfig; import org.apache.hyracks.control.common.controllers.NCConfig; import org.apache.hyracks.control.nc.io.DefaultDeviceResolver; +import org.apache.hyracks.util.LoggingConfigUtil; import org.apache.logging.log4j.Level; -import org.apache.logging.log4j.core.config.Configurator; public class BaseNCApplication implements INCApplication { public static final BaseNCApplication INSTANCE = new BaseNCApplication(); @@ -98,7 +99,7 @@ } protected void configureLoggingLevel(Level level) { - Configurator.setLevel("org.apache.hyracks", level); + LoggingConfigUtil.defaultIfMissing(HyracksConstants.HYRACKS_LOGGER_NAME, level); } } diff --git a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/LoggingConfigUtil.java b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/LoggingConfigUtil.java new file mode 100644 index 0000000..a98c241 --- /dev/null +++ b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/LoggingConfigUtil.java @@ -0,0 +1,46 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.hyracks.util; + +import org.apache.logging.log4j.Level; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.core.LoggerContext; +import org.apache.logging.log4j.core.config.Configuration; +import org.apache.logging.log4j.core.config.Configurator; +import org.apache.logging.log4j.core.config.LoggerConfig; + +public class LoggingConfigUtil { + + private static final Logger LOGGER = LogManager.getLogger(); + + private LoggingConfigUtil() { + } + + public static void defaultIfMissing(String logger, Level defaultLvl) { + final Configuration loggingConfig = LoggerContext.getContext().getConfiguration(); + final LoggerConfig loggerConfig = loggingConfig.getLoggers().get(logger); + if (loggerConfig != null) { + LOGGER.info("{} log level is {}", logger, loggerConfig.getLevel()); + } else { + LOGGER.info("Setting {} log level to {}", logger, defaultLvl); + Configurator.setLevel(logger, defaultLvl); + } + } +} -- To view, visit https://asterix-gerrit.ics.uci.edu/2335 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-MessageType: merged Gerrit-Change-Id: Iff7ed7c094d9044f5959f9e24713302af9774786 Gerrit-PatchSet: 4 Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-Owner: Murtadha Hubail <[email protected]> Gerrit-Reviewer: Anon. E. Moose #1000171 Gerrit-Reviewer: Jenkins <[email protected]> Gerrit-Reviewer: Michael Blow <[email protected]> Gerrit-Reviewer: Murtadha Hubail <[email protected]>
