GEODE-2716: export logs default behavior changed from filtering at log level 
INFO to ALL.

* Removed reliance on LogService.DEFAULT_LOG_LEVEL, added 
ExportLogCommand.DEFAULT_EXPORT_LOG_LEVEL.
* Added DUnit test that fails under previous behavior.
* this closes #439


Project: http://git-wip-us.apache.org/repos/asf/geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/5430c91f
Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/5430c91f
Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/5430c91f

Branch: refs/heads/feature/GEODE-2632
Commit: 5430c91f61fdb9ae4b0d11758d2b8e5a18f52163
Parents: 669d3ed
Author: Patrick Rhomberg <prhomb...@pivotal.io>
Authored: Tue Mar 28 15:12:02 2017 -0700
Committer: Jinmei Liao <jil...@pivotal.io>
Committed: Thu Apr 6 10:17:36 2017 -0700

----------------------------------------------------------------------
 .../geode/internal/logging/LogService.java      |  1 -
 .../cli/commands/ExportLogsCommand.java         |  4 +-
 .../cli/functions/ExportLogsFunction.java       |  2 +-
 .../internal/cli/i18n/CliStrings.java           |  4 +-
 .../cli/commands/ExportLogsDUnitTest.java       |  7 +++
 .../cli/functions/ExportLogsFunctionTest.java   | 45 ++++++++++++++++++++
 .../cli/commands/golden-help-offline.properties | 11 ++---
 7 files changed, 64 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/geode/blob/5430c91f/geode-core/src/main/java/org/apache/geode/internal/logging/LogService.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/logging/LogService.java 
b/geode-core/src/main/java/org/apache/geode/internal/logging/LogService.java
index 1f8a564..5a229d3 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/logging/LogService.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/logging/LogService.java
@@ -46,7 +46,6 @@ public class LogService extends LogManager {
   public static final String BASE_LOGGER_NAME = "org.apache.geode";
   public static final String MAIN_LOGGER_NAME = "org.apache.geode";
   public static final String SECURITY_LOGGER_NAME = 
"org.apache.geode.security";
-  public static final String DEFAULT_LOG_LEVEL = "INFO";
 
   public static final String GEODE_VERBOSE_FILTER = "{GEODE_VERBOSE}";
   public static final String GEMFIRE_VERBOSE_FILTER = "{GEMFIRE_VERBOSE}";

http://git-wip-us.apache.org/repos/asf/geode/blob/5430c91f/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ExportLogsCommand.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ExportLogsCommand.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ExportLogsCommand.java
index fe9cecd..1d5c412 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ExportLogsCommand.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ExportLogsCommand.java
@@ -57,6 +57,8 @@ public class ExportLogsCommand implements CommandMarker {
   public static final String FORMAT = "yyyy/MM/dd/HH/mm/ss/SSS/z";
   public static final String ONLY_DATE_FORMAT = "yyyy/MM/dd";
 
+  public final static String DEFAULT_EXPORT_LOG_LEVEL = "ALL";
+
   private static final Pattern DISK_SPACE_LIMIT_PATTERN = 
Pattern.compile("(\\d+)([mgtMGT]?)");
 
   @CliCommand(value = CliStrings.EXPORT_LOGS, help = 
CliStrings.EXPORT_LOGS__HELP)
@@ -77,7 +79,7 @@ public class ExportLogsCommand implements CommandMarker {
           optionContext = ConverterHint.ALL_MEMBER_IDNAME,
           help = CliStrings.EXPORT_LOGS__MEMBER__HELP) String[] memberIds,
       @CliOption(key = CliStrings.EXPORT_LOGS__LOGLEVEL,
-          unspecifiedDefaultValue = LogService.DEFAULT_LOG_LEVEL,
+          unspecifiedDefaultValue = DEFAULT_EXPORT_LOG_LEVEL,
           optionContext = ConverterHint.LOG_LEVEL,
           help = CliStrings.EXPORT_LOGS__LOGLEVEL__HELP) String logLevel,
       @CliOption(key = CliStrings.EXPORT_LOGS__UPTO_LOGLEVEL, 
unspecifiedDefaultValue = "false",

http://git-wip-us.apache.org/repos/asf/geode/blob/5430c91f/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ExportLogsFunction.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ExportLogsFunction.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ExportLogsFunction.java
index 13124c5..3ce1721 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ExportLogsFunction.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ExportLogsFunction.java
@@ -168,7 +168,7 @@ public class ExportLogsFunction implements Function, 
InternalEntity {
       this.endTime = parseTime(endTime);
 
       if (StringUtils.isBlank(logLevel)) {
-        this.logLevel = Level.INFO;
+        this.logLevel = 
LogLevel.getLevel(ExportLogsCommand.DEFAULT_EXPORT_LOG_LEVEL);
       } else {
         this.logLevel = LogLevel.getLevel(logLevel);
       }

http://git-wip-us.apache.org/repos/asf/geode/blob/5430c91f/geode-core/src/main/java/org/apache/geode/management/internal/cli/i18n/CliStrings.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/i18n/CliStrings.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/i18n/CliStrings.java
index dfc4cf1..67955dc 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/i18n/CliStrings.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/i18n/CliStrings.java
@@ -1391,7 +1391,7 @@ public class CliStrings {
   public static final String EXPORT_LOGS__HELP = "Export the log files for a 
member or members.";
   public static final String EXPORT_LOGS__DIR = "dir";
   public static final String EXPORT_LOGS__DIR__HELP =
-      "Local directory to which logs will be written. This is used only when 
you are exporting logs using an http connection. If not specified, logs are 
written to the location specified by the user.dir system property.";
+      "Directory to which logs will be written.  This refers to a local 
directory when exporting logs using an http connection, but refers to the 
filesystem of the manager when connected via JMX. If not specified, logs are 
written to the location specified by the user.dir system property.";
   public static final String EXPORT_LOGS__MEMBER = "member";
   public static final String EXPORT_LOGS__MEMBER__HELP =
       "Name/Id of the member whose log files will be exported.";
@@ -1401,7 +1401,7 @@ public class CliStrings {
   public static final String EXPORT_LOGS__MSG__CANNOT_EXECUTE = "Cannot 
execute";
   public static final String EXPORT_LOGS__LOGLEVEL = LOG_LEVEL;
   public static final String EXPORT_LOGS__LOGLEVEL__HELP =
-      "Minimum level of log entries to export. Valid values are: fatal, error, 
warn, info, debug, trace and all.  The default is \"INFO\".";
+      "Minimum level of log entries to export. Valid values are: fatal, error, 
warn, info, debug, trace and all.  The default is \"ALL\".";
   public static final String EXPORT_LOGS__UPTO_LOGLEVEL = "only-log-level";
   public static final String EXPORT_LOGS__UPTO_LOGLEVEL__HELP =
       "Whether to only include those entries that exactly match the 
--log-level specified.";

http://git-wip-us.apache.org/repos/asf/geode/blob/5430c91f/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ExportLogsDUnitTest.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ExportLogsDUnitTest.java
 
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ExportLogsDUnitTest.java
index d0180d0..c960c8f 100644
--- 
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ExportLogsDUnitTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ExportLogsDUnitTest.java
@@ -177,6 +177,13 @@ public class ExportLogsDUnitTest {
   }
 
   @Test
+  public void testExportWithNoOptionsGiven() throws Exception {
+    CommandResult result = gfshConnector.executeAndVerifyCommand("export 
logs");
+    Set<String> acceptedLogLevels = Stream.of("info", "error", 
"debug").collect(toSet());
+    verifyZipFileContents(acceptedLogLevels);
+  }
+
+  @Test
   public void testExportWithNoFilters() throws Exception {
     gfshConnector.executeAndVerifyCommand("export logs --log-level=all");
 

http://git-wip-us.apache.org/repos/asf/geode/blob/5430c91f/geode-core/src/test/java/org/apache/geode/management/internal/cli/functions/ExportLogsFunctionTest.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/functions/ExportLogsFunctionTest.java
 
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/functions/ExportLogsFunctionTest.java
new file mode 100644
index 0000000..4e72444
--- /dev/null
+++ 
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/functions/ExportLogsFunctionTest.java
@@ -0,0 +1,45 @@
+/*
+ * 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.geode.management.internal.cli.functions;
+
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertEquals;
+
+import org.apache.geode.internal.logging.log4j.LogLevel;
+import org.apache.geode.management.internal.cli.commands.ExportLogsCommand;
+import org.apache.geode.test.junit.categories.UnitTest;
+import org.junit.Test;
+import org.apache.logging.log4j.Level;
+import org.junit.experimental.categories.Category;
+
+@Category(UnitTest.class)
+public class ExportLogsFunctionTest {
+  @Test
+  public void defaultExportLogLevelShouldBeAll() throws Exception {
+    assertTrue(ExportLogsCommand.DEFAULT_EXPORT_LOG_LEVEL.equals("ALL"));
+    
assertEquals(LogLevel.getLevel(ExportLogsCommand.DEFAULT_EXPORT_LOG_LEVEL), 
Level.ALL);
+  }
+
+  @Test
+  public void defaultExportLogLevelShouldBeAllViaArgs() throws Exception {
+    ExportLogsFunction.Args args = new ExportLogsFunction.Args("", "", "", 
false, false, false);
+    assertEquals(args.getLogLevel(), Level.ALL);
+    ExportLogsFunction.Args args2 = new ExportLogsFunction.Args("", "", null, 
false, false, false);
+    assertEquals(args2.getLogLevel(), Level.ALL);
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/geode/blob/5430c91f/geode-core/src/test/resources/org/apache/geode/management/internal/cli/commands/golden-help-offline.properties
----------------------------------------------------------------------
diff --git 
a/geode-core/src/test/resources/org/apache/geode/management/internal/cli/commands/golden-help-offline.properties
 
b/geode-core/src/test/resources/org/apache/geode/management/internal/cli/commands/golden-help-offline.properties
index 3c56def..af6b4bf 100644
--- 
a/geode-core/src/test/resources/org/apache/geode/management/internal/cli/commands/golden-help-offline.properties
+++ 
b/geode-core/src/test/resources/org/apache/geode/management/internal/cli/commands/golden-help-offline.properties
@@ -1473,9 +1473,10 @@ SYNTAX\n\
 \ \ \ \ [--end-time=value] [--logs-only(=value)?] [--stats-only(=value)?]\n\
 PARAMETERS\n\
 \ \ \ \ dir\n\
-\ \ \ \ \ \ \ \ Local directory to which logs will be written. This is used 
only when you are exporting\n\
-\ \ \ \ \ \ \ \ logs using an http connection. If not specified, logs are 
written to the location specified\n\
-\ \ \ \ \ \ \ \ by the user.dir system property.\n\
+\ \ \ \ \ \ \ \ Directory to which logs will be written.  This refers to a 
local directory when exporting\n\
+\ \ \ \ \ \ \ \ logs using an http connection, but refers to the filesystem of 
the manager when connected\n\
+\ \ \ \ \ \ \ \ via JMX. If not specified, logs are written to the location 
specified by the user.dir\n\
+\ \ \ \ \ \ \ \ system property.\n\
 \ \ \ \ \ \ \ \ Required: false\n\
 \ \ \ \ group\n\
 \ \ \ \ \ \ \ \ Group of members whose log files will be exported.\n\
@@ -1485,9 +1486,9 @@ PARAMETERS\n\
 \ \ \ \ \ \ \ \ Required: false\n\
 \ \ \ \ log-level\n\
 \ \ \ \ \ \ \ \ Minimum level of log entries to export. Valid values are: 
fatal, error, warn, info, debug,\n\
-\ \ \ \ \ \ \ \ trace and all.  The default is "INFO".\n\
+\ \ \ \ \ \ \ \ trace and all.  The default is "ALL".\n\
 \ \ \ \ \ \ \ \ Required: false\n\
-\ \ \ \ \ \ \ \ Default (if the parameter is not specified): INFO\n\
+\ \ \ \ \ \ \ \ Default (if the parameter is not specified): ALL\n\
 \ \ \ \ only-log-level\n\
 \ \ \ \ \ \ \ \ Whether to only include those entries that exactly match the 
--log-level specified.\n\
 \ \ \ \ \ \ \ \ Required: false\n\

Reply via email to