SLIDER-555 server-side log4j
Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/b0a773cf Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/b0a773cf Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/b0a773cf Branch: refs/heads/releases/slider-0.60 Commit: b0a773cf3d90022b5eb84a5e31bb3495c724cbc6 Parents: 3fbaa52 Author: Steve Loughran <ste...@apache.org> Authored: Thu Nov 6 16:54:19 2014 +0000 Committer: Steve Loughran <ste...@apache.org> Committed: Thu Nov 6 16:55:21 2014 +0000 ---------------------------------------------------------------------- .../org/apache/slider/client/SliderClient.java | 11 ++++++++ .../org/apache/slider/common/SliderKeys.java | 9 ++++-- .../apache/slider/common/tools/SliderUtils.java | 29 +++----------------- 3 files changed, 22 insertions(+), 27 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/b0a773cf/slider-core/src/main/java/org/apache/slider/client/SliderClient.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/client/SliderClient.java b/slider-core/src/main/java/org/apache/slider/client/SliderClient.java index 676d865..b9ed2b5 100644 --- a/slider-core/src/main/java/org/apache/slider/client/SliderClient.java +++ b/slider-core/src/main/java/org/apache/slider/client/SliderClient.java @@ -1175,6 +1175,7 @@ public class SliderClient extends AbstractSliderLaunchedService implements RunSe Map<String, LocalResource> localResources = amLauncher.getLocalResources(); // look for the configuration directory named on the command line + boolean hasServerLog4jProperties = false; Path remoteConfPath = null; String relativeConfDir = null; String confdirProp = @@ -1192,6 +1193,10 @@ public class SliderClient extends AbstractSliderLaunchedService implements RunSe log.debug("Slider configuration directory is {}; remote to be {}", localConfDirPath, remoteConfPath); SliderUtils.copyDirectory(config, localConfDirPath, remoteConfPath, null); + + File log4jserver = + new File(confDir, SliderKeys.LOG4J_SERVER_PROP_FILENAME); + hasServerLog4jProperties = log4jserver.isFile(); } // the assumption here is that minimr cluster => this is a test run // and the classpath can look after itself @@ -1319,6 +1324,12 @@ public class SliderClient extends AbstractSliderLaunchedService implements RunSe sliderAM.addJVMOptions(instanceDefinition, commandLine); // enable asserts if the text option is set commandLine.enableJavaAssertions(); + + // if the conf dir has a log4j-server.properties, switch to that + if (hasServerLog4jProperties) { + commandLine.sysprop(SYSPROP_LOG4_CONFIGURATION, LOG4J_SERVER_PROP_FILENAME); + } + // add the AM sevice entry point commandLine.add(SliderAppMaster.SERVICE_CLASSNAME); http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/b0a773cf/slider-core/src/main/java/org/apache/slider/common/SliderKeys.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/common/SliderKeys.java b/slider-core/src/main/java/org/apache/slider/common/SliderKeys.java index 1a94d83..9e721cf 100644 --- a/slider-core/src/main/java/org/apache/slider/common/SliderKeys.java +++ b/slider-core/src/main/java/org/apache/slider/common/SliderKeys.java @@ -133,16 +133,21 @@ public interface SliderKeys extends SliderXmlConfKeys { String SUBMITTED_CONF_DIR = "confdir"; /** - * Slider AM log4j file name + * Slider AM log4j file name : {@value} */ String LOG4J_SERVER_PROP_FILENAME = "log4j-server.properties"; /** - * Standard log4j file name + * Standard log4j file name : {@value} */ String LOG4J_PROP_FILENAME = "log4j.properties"; /** + * Log4j sysprop to name the resource :{@value} + */ + String SYSPROP_LOG4_CONFIGURATION = "log4j.configuration"; + + /** * name of the Slider client resource * loaded when the service is loaded. */ http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/b0a773cf/slider-core/src/main/java/org/apache/slider/common/tools/SliderUtils.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/common/tools/SliderUtils.java b/slider-core/src/main/java/org/apache/slider/common/tools/SliderUtils.java index 0ff5ccb..82b17fd 100644 --- a/slider-core/src/main/java/org/apache/slider/common/tools/SliderUtils.java +++ b/slider-core/src/main/java/org/apache/slider/common/tools/SliderUtils.java @@ -415,9 +415,7 @@ public final class SliderUtils { new SliderFileSystem(destFS, conf).createWithPermissions(destDirPath, permission); } - // Slider AM now has its own log4j-server.properties file - List<Path> sourcePaths = new ArrayList<Path>(); - Path serverLog4jPath = null; + Path[] sourcePaths = new Path[srcFileCount]; for (int i = 0; i < srcFileCount; i++) { FileStatus e = entries[i]; Path srcFile = e.getPath(); @@ -427,32 +425,13 @@ public final class SliderUtils { log.warn(msg); throw new IOException(msg); } - if (SliderKeys.LOG4J_SERVER_PROP_FILENAME.equals(srcFile.getName())) { - // log4j-server.properties will be copied as log4j.properties - serverLog4jPath = srcFile; - log.debug("copying src conf file {} as {}", srcFile, - SliderKeys.LOG4J_PROP_FILENAME); - continue; - } - if (SliderKeys.LOG4J_PROP_FILENAME.equals(srcFile.getName())) { - // ignore log4j.properties entirely for Slider AM - log.debug("ignoring file {}", srcFile); - continue; - } log.debug("copying src conf file {}", srcFile); - sourcePaths.add(srcFile); + sourcePaths[i] = srcFile; } - log.debug("Copying {} files from {} to dest {}", - sourcePaths.size() + (serverLog4jPath != null ? 1 : 0), + log.debug("Copying {} files from {} to dest {}", srcFileCount, srcDirPath, destDirPath); - FileUtil.copy(srcFS, sourcePaths.toArray(new Path[0]), destFS, destDirPath, - false, true, conf); - // Now copy log4j-server.properties (if exists) to dest as log4j.properties - if (serverLog4jPath != null) { - FileUtil.copy(srcFS, serverLog4jPath, destFS, new Path(destDirPath, - SliderKeys.LOG4J_PROP_FILENAME), false, true, conf); - } + FileUtil.copy(srcFS, sourcePaths, destFS, destDirPath, false, true, conf); return srcFileCount; }