diff --git a/runtime/vm/jvminit.c b/runtime/vm/jvminit.c
index 2756fa92cb4..0170ceb6a9e 100644
--- a/runtime/vm/jvminit.c
+++ b/runtime/vm/jvminit.c
@@ -6308,10 +6308,25 @@ parseXlogForCompatibility(J9JavaVM *vm)
if ('\0' == *upToComma) {
goto xlogerr;
}
- gclog = 0 != j9_cmdla_stricmp("off", upToComma);
- if (gclog) {
+ /* only levels trace, debug, info, and not off, warning, error, enable the gc verbose log */
+ if (0 == j9_cmdla_stricmp("off", upToComma)) {
+ gclog = FALSE;
+ } else if ((0 == j9_cmdla_stricmp("warning", upToComma))
+ || (0 == j9_cmdla_stricmp("error", upToComma))
+ ) {
+ gclog = FALSE;
/* OpenJ9 doesn't understand log levels */
unrecognizedOption = TRUE;
+ } else if ((0 == j9_cmdla_stricmp("trace", upToComma))
+ || (0 == j9_cmdla_stricmp("debug", upToComma))
+ || (0 == j9_cmdla_stricmp("info", upToComma))
+ ) {
+ gclog = TRUE;
+ /* OpenJ9 doesn't understand log levels */
+ unrecognizedOption = TRUE;
+ } else {
+ /* unrecognized log level */
+ unrecognizedOption = TRUE;
}
}
}
diff --git a/test/functional/cmdLineTests/xlogTests/xlog.xml b/test/functional/cmdLineTests/xlogTests/xlog.xml
index c97fad6cfb4..6fd43aa91d9 100644
--- a/test/functional/cmdLineTests/xlogTests/xlog.xml
+++ b/test/functional/cmdLineTests/xlogTests/xlog.xml
@@ -91,6 +91,30 @@ SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH Classpath-excepti
+
+ $EXE$ $ENABLEXLOG$ -Xlog:gc=trace -version
+
+
+
+
+
+
+
+ $EXE$ $ENABLEXLOG$ -Xlog:gc=debug -version
+
+
+
+
+
+
+
+ $EXE$ $ENABLEXLOG$ -Xlog:gc=info -version
+
+
+
+
+
+
$EXE$ $ENABLEXLOG$ -Xlog:gc: -version
@@ -184,6 +208,22 @@ SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH Classpath-excepti
+
+ $EXE$ $ENABLEXLOG$ -Xlog:gc=warning -version
+
+
+
+
+
+
+
+ $EXE$ $ENABLEXLOG$ -Xlog:gc=error -version
+
+
+
+
+
+
$EXE$ $ENABLEXLOG$ -Xlog:any+gc=off -version