Upgrade to Quarkus 2.12.0.Final (#14006)

Closes #14003
This commit is contained in:
Pedro Igor 2022-08-30 11:48:20 -03:00 committed by GitHub
parent 27ecf7f00f
commit 127569ed2f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
22 changed files with 229 additions and 63 deletions

4
.gitignore vendored
View file

@ -78,6 +78,8 @@ quarkus/data/*.db
# Jakarta transformed sources # # Jakarta transformed sources #
############################### ###############################
/integration/admin-client-jakarta/src/ /integration/admin-client-jakarta/src/
/.metadata/ /.metadata/
# Git ephemeral files
*.versionsBackup

View file

@ -41,7 +41,7 @@
<jboss.snapshots.repo.id>jboss-snapshots-repository</jboss.snapshots.repo.id> <jboss.snapshots.repo.id>jboss-snapshots-repository</jboss.snapshots.repo.id>
<jboss.snapshots.repo.url>https://s01.oss.sonatype.org/content/repositories/snapshots/</jboss.snapshots.repo.url> <jboss.snapshots.repo.url>https://s01.oss.sonatype.org/content/repositories/snapshots/</jboss.snapshots.repo.url>
<quarkus.version>2.7.6.Final</quarkus.version> <quarkus.version>2.12.0.Final</quarkus.version>
<!-- <!--
Performing a Wildfly upgrade? Run the: Performing a Wildfly upgrade? Run the:

View file

@ -204,6 +204,66 @@ Please, make sure:
* Make sure you have a test within the [tests/integration](tests/integration) module to cover the changes * Make sure you have a test within the [tests/integration](tests/integration) module to cover the changes
* You probably want to run a full build of the `quarkus` module, including running tests, to make sure you won't be surprised by failures in CI. * You probably want to run a full build of the `quarkus` module, including running tests, to make sure you won't be surprised by failures in CI.
## Upgrading Quarkus Version
Upgrading Quarkus requires a few steps:
* Change the Quarkus version
* Change the dependencies we are using from Quarkus
* Run a build to make sure the server extension is not broken
The steps still require a lot of manual work, and we should be improving this.
### Changing the Quarkus version
To change the Quarkus version, you can run the following script:
```bash
./set-quarkus-version.sh <version>
```
The `set-quarkus-version.sh` script is enough to change the version for all dependencies we are
using from Quarkus.
The `<version>` should point to a branch or a tag from Quarkus repository.
It is also possible to change to a snapshot version by running:
```bash
./set-quarkus-version.sh
```
### Run a local build
After changing the dependency versions, you can run a local build to make sure the server extension is not broken by API changes and if
all tests are passing:
```
mvn clean install
```
### Changing versions of JDBC Extensions
It might happen that when upgrading a version for any of the JDBC extensions (e.g.: `quarkus-jdbc-postgresql`) you also need to make sure the server extension is using the same JDBC Drivers.
For that, you should look at the `deployment` module of the corresponding JDBC extension from Quarkus (e.g.: https://github.com/quarkusio/quarkus/blob/main/extensions/jdbc/jdbc-postgresql/deployment/src/main/java/io/quarkus/jdbc/postgresql/deployment/JDBCPostgreSQLProcessor.java) to check if they match with the drivers used by the server extension by looking at the `org.keycloak.config.database.Database` class.
### Changing versions of Quarkiverse dependencies
Make sure the Quarkiverse dependencies are also updated and in sync with the Quarkus version you are upgrading.
For now, we only have this Quarkiverse dependency:
* https://github.com/quarkiverse/quarkus-vault
### What can go wrong when upgrading?
The perfect scenario is that after performing all the steps above the server extension will compile, the distribution can be built,
and all tests will pass.
However, it is expected breaking changes between Quarkus upgrades that break the integration code we have in both [deployment](deployment) and [runtime](runtime) modules. When this happens,
you should understand what is breaking and upgrade the integration code accordingly.
## References ## References
* [Configuration Guide](https://www.keycloak.org/server/configuration) * [Configuration Guide](https://www.keycloak.org/server/configuration)

View file

@ -95,6 +95,13 @@ public class LoggingOptions {
.defaultValue("%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n") .defaultValue("%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n")
.build(); .build();
public static final Option<Output> LOG_FILE_OUTPUT = new OptionBuilder<>("log-file-output", Output.class)
.category(OptionCategory.LOGGING)
.defaultValue(DEFAULT_CONSOLE_OUTPUT)
.description("Set the log output to JSON or default (plain) unstructured logging.")
.build();
public static final Option<Boolean> LOG_GELF_ENABLED = new OptionBuilder<>("log-gelf-enabled", Boolean.class) public static final Option<Boolean> LOG_GELF_ENABLED = new OptionBuilder<>("log-gelf-enabled", Boolean.class)
.category(OptionCategory.LOGGING) .category(OptionCategory.LOGGING)
.hidden() .hidden()

View file

@ -125,7 +125,7 @@ public final class Database {
asList("org.keycloak.connections.jpa.updater.liquibase.UpdatedMySqlDatabase") asList("org.keycloak.connections.jpa.updater.liquibase.UpdatedMySqlDatabase")
), ),
MARIADB("mariadb", MARIADB("mariadb",
"org.mariadb.jdbc.MySQLDataSource", "org.mariadb.jdbc.MariaDbDataSource",
"org.mariadb.jdbc.Driver", "org.mariadb.jdbc.Driver",
"org.hibernate.dialect.MariaDBDialect", "org.hibernate.dialect.MariaDBDialect",
"jdbc:mariadb://${kc.db-url-host:localhost}:${kc.db-url-port:3306}/${kc.db-url-database:keycloak}${kc.db-url-properties:}", "jdbc:mariadb://${kc.db-url-host:localhost}:${kc.db-url-port:3306}/${kc.db-url-database:keycloak}${kc.db-url-properties:}",

View file

@ -32,20 +32,28 @@
<properties> <properties>
<!-- <!--
Override versions based on Quarkus dependencies. Do not change the properties bellow.
Make sure to update these dependencies when Quarkus version changes. Their names should match the name used by Quarkus BOM and the versions are automatically set when running the 'set-quarkus-version.sh' script.
See https://github.com/quarkusio/quarkus/blob/<versionTag>/bom/application/pom.xml
for reference
--> -->
<resteasy.version>4.7.5.Final</resteasy.version> <resteasy.version>4.7.7.Final</resteasy.version>
<jackson.version>2.13.3</jackson.version> <jackson-bom.version>2.13.3</jackson-bom.version>
<jackson.databind.version>2.13.3</jackson.databind.version> <hibernate-orm.version>5.6.10.Final</hibernate-orm.version>
<hibernate.core.version>5.6.5.Final</hibernate.core.version> <mysql-jdbc.version>8.0.30</mysql-jdbc.version>
<mysql.driver.version>8.0.28</mysql.driver.version> <postgresql-jdbc.version>42.4.2</postgresql-jdbc.version>
<postgresql.version>42.3.3</postgresql.version> <wildfly-common.version>1.5.4.Final-format-001</wildfly-common.version>
<wildfly-elytron.version>1.20.0.Final</wildfly-elytron.version>
<microprofile-metrics-api.version>3.0.1</microprofile-metrics-api.version> <microprofile-metrics-api.version>3.0.1</microprofile-metrics-api.version>
<wildfly.common.version>1.5.4.Final-format-001</wildfly.common.version>
<wildfly-elytron.version>1.18.3.Final</wildfly-elytron.version> <!--
We need to override certain dependencies from the parent POM.
TODO: remove these properties after changing the parent POM to use the same property names used by Quarkus BOM.
-->
<jackson.version>${jackson-bom.version}</jackson.version>
<jackson.databind.version>${jackson-bom.version}</jackson.databind.version>
<hibernate.core.version>${hibernate-orm.version}</hibernate.core.version>
<mysql.driver.version>${mysql-jdbc.version}</mysql.driver.version>
<postgresql.version>${postgresql-jdbc.version}</postgresql.version>
<wildfly.common.version>${wildfly-common.version}</wildfly.common.version>
<!-- <!--
Java EE dependencies. Not available from JDK 11+. Java EE dependencies. Not available from JDK 11+.
@ -58,7 +66,7 @@
<!-- <!--
Quarkiverse dependency versions Quarkiverse dependency versions
--> -->
<io.quarkiverse.vault.version>1.1.0</io.quarkiverse.vault.version> <io.quarkiverse.vault.version>2.0.0</io.quarkiverse.vault.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.plugin.version>3.8.1</maven.compiler.plugin.version> <maven.compiler.plugin.version>3.8.1</maven.compiler.plugin.version>

View file

@ -30,8 +30,8 @@ public final class LoggingPropertyMappers {
.build(), .build(),
fromOption(LoggingOptions.LOG_CONSOLE_OUTPUT) fromOption(LoggingOptions.LOG_CONSOLE_OUTPUT)
.to("quarkus.log.console.json") .to("quarkus.log.console.json")
.paramLabel("default|json") .paramLabel("output")
.transformer(LoggingPropertyMappers::resolveLogConsoleOutput) .transformer(LoggingPropertyMappers::resolveLogOutput)
.build(), .build(),
fromOption(LoggingOptions.LOG_CONSOLE_FORMAT) fromOption(LoggingOptions.LOG_CONSOLE_FORMAT)
.to("quarkus.log.console.format") .to("quarkus.log.console.format")
@ -39,7 +39,6 @@ public final class LoggingPropertyMappers {
.build(), .build(),
fromOption(LoggingOptions.LOG_CONSOLE_COLOR) fromOption(LoggingOptions.LOG_CONSOLE_COLOR)
.to("quarkus.log.console.color") .to("quarkus.log.console.color")
.paramLabel(Boolean.TRUE + "|" + Boolean.FALSE)
.build(), .build(),
fromOption(LoggingOptions.LOG_CONSOLE_ENABLED) fromOption(LoggingOptions.LOG_CONSOLE_ENABLED)
.mapFrom("log") .mapFrom("log")
@ -53,13 +52,18 @@ public final class LoggingPropertyMappers {
.build(), .build(),
fromOption(LoggingOptions.LOG_FILE) fromOption(LoggingOptions.LOG_FILE)
.to("quarkus.log.file.path") .to("quarkus.log.file.path")
.paramLabel("<path>/<file-name>.log") .paramLabel("file")
.transformer(LoggingPropertyMappers::resolveFileLogLocation) .transformer(LoggingPropertyMappers::resolveFileLogLocation)
.build(), .build(),
fromOption(LoggingOptions.LOG_FILE_FORMAT) fromOption(LoggingOptions.LOG_FILE_FORMAT)
.to("quarkus.log.file.format") .to("quarkus.log.file.format")
.paramLabel("<format>") .paramLabel("<format>")
.build(), .build(),
fromOption(LoggingOptions.LOG_FILE_OUTPUT)
.to("quarkus.log.file.json")
.paramLabel("output")
.transformer(LoggingPropertyMappers::resolveLogOutput)
.build(),
fromOption(LoggingOptions.LOG_LEVEL) fromOption(LoggingOptions.LOG_LEVEL)
.to("quarkus.log.level") .to("quarkus.log.level")
.transformer(LoggingPropertyMappers::resolveLogLevel) .transformer(LoggingPropertyMappers::resolveLogLevel)
@ -68,7 +72,6 @@ public final class LoggingPropertyMappers {
fromOption(LoggingOptions.LOG_GELF_ENABLED) fromOption(LoggingOptions.LOG_GELF_ENABLED)
.mapFrom("log") .mapFrom("log")
.to("quarkus.log.handler.gelf.enabled") .to("quarkus.log.handler.gelf.enabled")
.paramLabel(Boolean.TRUE + "|" + Boolean.FALSE)
.transformer(LoggingPropertyMappers.resolveLogHandler("gelf")) .transformer(LoggingPropertyMappers.resolveLogHandler("gelf"))
.build(), .build(),
fromOption(LoggingOptions.LOG_GELF_LEVEL) fromOption(LoggingOptions.LOG_GELF_LEVEL)
@ -89,7 +92,6 @@ public final class LoggingPropertyMappers {
.build(), .build(),
fromOption(LoggingOptions.LOG_GELF_INCLUDE_STACK_TRACE) fromOption(LoggingOptions.LOG_GELF_INCLUDE_STACK_TRACE)
.to("quarkus.log.handler.gelf.extract-stack-trace") .to("quarkus.log.handler.gelf.extract-stack-trace")
.paramLabel(Boolean.TRUE + "|" + Boolean.FALSE)
.build(), .build(),
fromOption(LoggingOptions.LOG_GELF_TIMESTAMP_FORMAT) fromOption(LoggingOptions.LOG_GELF_TIMESTAMP_FORMAT)
.to("quarkus.log.handler.gelf.timestamp-pattern") .to("quarkus.log.handler.gelf.timestamp-pattern")
@ -105,11 +107,9 @@ public final class LoggingPropertyMappers {
.build(), .build(),
fromOption(LoggingOptions.LOG_GELF_INCLUDE_LOG_MSG_PARAMS) fromOption(LoggingOptions.LOG_GELF_INCLUDE_LOG_MSG_PARAMS)
.to("quarkus.log.handler.gelf.include-log-message-parameters") .to("quarkus.log.handler.gelf.include-log-message-parameters")
.paramLabel(Boolean.TRUE + "|" + Boolean.FALSE)
.build(), .build(),
fromOption(LoggingOptions.LOG_GELF_INCLUDE_LOCATION) fromOption(LoggingOptions.LOG_GELF_INCLUDE_LOCATION)
.to("quarkus.log.handler.gelf.include-location") .to("quarkus.log.handler.gelf.include-location")
.paramLabel(Boolean.TRUE + "|" + Boolean.FALSE)
.build() .build()
}; };
} }
@ -198,7 +198,7 @@ public final class LoggingPropertyMappers {
return rootLevel; return rootLevel;
} }
private static Optional<String> resolveLogConsoleOutput(Optional<String> value, ConfigSourceInterceptorContext context) { private static Optional<String> resolveLogOutput(Optional<String> value, ConfigSourceInterceptorContext context) {
if (value.get().equals(LoggingOptions.DEFAULT_CONSOLE_OUTPUT.name().toLowerCase(Locale.ROOT))) { if (value.get().equals(LoggingOptions.DEFAULT_CONSOLE_OUTPUT.name().toLowerCase(Locale.ROOT))) {
return of(Boolean.FALSE.toString()); return of(Boolean.FALSE.toString());
} }

View file

@ -31,3 +31,6 @@ quarkus.devservices.enabled=false
# We want to expose non-application paths (e.g. health) at the root path # We want to expose non-application paths (e.g. health) at the root path
quarkus.http.non-application-root-path=${quarkus.http.root-path} quarkus.http.non-application-root-path=${quarkus.http.root-path}
# Disable specific categories from logs
quarkus.log.category."io.quarkus.config".level=off

View file

@ -47,8 +47,9 @@ import io.quarkus.runtime.configuration.ConfigUtils;
import io.smallrye.config.SmallRyeConfigProviderResolver; import io.smallrye.config.SmallRyeConfigProviderResolver;
import org.keycloak.quarkus.runtime.Environment; import org.keycloak.quarkus.runtime.Environment;
import org.keycloak.quarkus.runtime.vault.FilesPlainTextVaultProviderFactory; import org.keycloak.quarkus.runtime.vault.FilesPlainTextVaultProviderFactory;
import org.mariadb.jdbc.MySQLDataSource; import org.mariadb.jdbc.MariaDbDataSource;
import org.postgresql.xa.PGXADataSource; import org.postgresql.xa.PGXADataSource;
import com.mysql.cj.jdbc.MysqlDataSource;
public class ConfigurationTest { public class ConfigurationTest {
@ -332,7 +333,7 @@ public class ConfigurationTest {
config = createConfig(); config = createConfig();
assertEquals("jdbc:mariadb://localhost:3306/keycloak?test=test&test1=test1", config.getConfigValue("quarkus.datasource.jdbc.url").getValue()); assertEquals("jdbc:mariadb://localhost:3306/keycloak?test=test&test1=test1", config.getConfigValue("quarkus.datasource.jdbc.url").getValue());
assertEquals(MariaDBDialect.class.getName(), config.getConfigValue("quarkus.hibernate-orm.dialect").getValue()); assertEquals(MariaDBDialect.class.getName(), config.getConfigValue("quarkus.hibernate-orm.dialect").getValue());
assertEquals(MySQLDataSource.class.getName(), config.getConfigValue("quarkus.datasource.jdbc.driver").getValue()); assertEquals(MariaDbDataSource.class.getName(), config.getConfigValue("quarkus.datasource.jdbc.driver").getValue());
System.setProperty(CLI_ARGS, "--db=postgres"); System.setProperty(CLI_ARGS, "--db=postgres");
config = createConfig(); config = createConfig();

61
quarkus/set-quarkus-version.sh Executable file
View file

@ -0,0 +1,61 @@
#
# Copyright 2022 Red Hat, Inc. and/or its affiliates
# and other contributors as indicated by the @author tags.
#
# Licensed 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.
#
if [ "$1" == "-h" ]; then
echo "Change the Quarkus version to a specific version."
echo "Usage: set-quarkus-version <version>"
exit
fi
DEFAULT_QUARKUS_VERSION="999-SNAPSHOT"
QUARKUS_VERSION=${1:-"$DEFAULT_QUARKUS_VERSION"}
QUARKUS_BRANCH="$QUARKUS_VERSION"
if [ "$QUARKUS_BRANCH" == "$DEFAULT_QUARKUS_VERSION" ]; then
QUARKUS_BRANCH="main"
fi
QUARKUS_BOM_URL="https://raw.githubusercontent.com/quarkusio/quarkus/$QUARKUS_BRANCH/bom/application/pom.xml"
if ! $(curl --output /dev/null --silent --head --fail "$QUARKUS_BOM_URL"); then
echo "Failed to resolve version from Quarkus BOM at '$QUARKUS_BOM_URL'"
exit 1
fi
QUARKUS_BOM=$(curl -s "$QUARKUS_BOM_URL")
echo "Setting Quarkus version: $QUARKUS_VERSION"
$(mvn -f ../pom.xml versions:revert 1> /dev/null)
$(mvn versions:set-property -f ../pom.xml -Dproperty=quarkus.version -DnewVersion="$QUARKUS_VERSION" 1> /dev/null)
DEPENDENCIES_LIST="resteasy jackson-bom hibernate-orm mysql-jdbc postgresql-jdbc microprofile-metrics-api wildfly-common wildfly-elytron"
echo "Changing dependencies: $DEPENDENCIES_LIST"
$(mvn -f ./pom.xml versions:revert 1> /dev/null)
for dependency in $DEPENDENCIES_LIST; do
VERSION=$(grep -oP "(?<=<$dependency.version>).*(?=</$dependency.version)" <<< "$QUARKUS_BOM")
if [ "$VERSION" == "" ]; then
echo "Failed to resolve version for dependency '$dependency'"
exit 1
fi
echo "Setting $VERSION to $dependency"
$(mvn versions:set-property -pl . -Dproperty="$dependency".version -DnewVersion="$VERSION" 1> /dev/null)
done
echo ""
echo "Done!"

View file

@ -177,14 +177,16 @@ Logging:
The format of unstructured console log entries. If the format has spaces in The format of unstructured console log entries. If the format has spaces in
it, escape the value using "<format>". Default: %d{yyyy-MM-dd HH:mm:ss,SSS} % it, escape the value using "<format>". Default: %d{yyyy-MM-dd HH:mm:ss,SSS} %
-5p [%c] (%t) %s%e%n. -5p [%c] (%t) %s%e%n.
--log-console-output <default|json> --log-console-output <output>
Set the log output to JSON or default (plain) unstructured logging. Possible Set the log output to JSON or default (plain) unstructured logging. Possible
values are: default, json. Default: default. values are: default, json. Default: default.
--log-file <path>/<file-name>.log --log-file <file> Set the log file path and filename. Default: data/log/keycloak.log.
Set the log file path and filename. Default: data/log/keycloak.log.
--log-file-format <format> --log-file-format <format>
Set a format specific to file log entries. Default: %d{yyyy-MM-dd HH:mm:ss, Set a format specific to file log entries. Default: %d{yyyy-MM-dd HH:mm:ss,
SSS} %-5p [%c] (%t) %s%e%n. SSS} %-5p [%c] (%t) %s%e%n.
--log-file-output <output>
Set the log output to JSON or default (plain) unstructured logging. Possible
values are: default, json. Default: default.
--log-gelf-facility <name> --log-gelf-facility <name>
The facility (name of the process) that sends the message. Default: keycloak. The facility (name of the process) that sends the message. Default: keycloak.
--log-gelf-host <hostname> --log-gelf-host <hostname>

View file

@ -177,14 +177,16 @@ Logging:
The format of unstructured console log entries. If the format has spaces in The format of unstructured console log entries. If the format has spaces in
it, escape the value using "<format>". Default: %d{yyyy-MM-dd HH:mm:ss,SSS} % it, escape the value using "<format>". Default: %d{yyyy-MM-dd HH:mm:ss,SSS} %
-5p [%c] (%t) %s%e%n. -5p [%c] (%t) %s%e%n.
--log-console-output <default|json> --log-console-output <output>
Set the log output to JSON or default (plain) unstructured logging. Possible Set the log output to JSON or default (plain) unstructured logging. Possible
values are: default, json. Default: default. values are: default, json. Default: default.
--log-file <path>/<file-name>.log --log-file <file> Set the log file path and filename. Default: data/log/keycloak.log.
Set the log file path and filename. Default: data/log/keycloak.log.
--log-file-format <format> --log-file-format <format>
Set a format specific to file log entries. Default: %d{yyyy-MM-dd HH:mm:ss, Set a format specific to file log entries. Default: %d{yyyy-MM-dd HH:mm:ss,
SSS} %-5p [%c] (%t) %s%e%n. SSS} %-5p [%c] (%t) %s%e%n.
--log-file-output <output>
Set the log output to JSON or default (plain) unstructured logging. Possible
values are: default, json. Default: default.
--log-gelf-facility <name> --log-gelf-facility <name>
The facility (name of the process) that sends the message. Default: keycloak. The facility (name of the process) that sends the message. Default: keycloak.
--log-gelf-host <hostname> --log-gelf-host <hostname>

View file

@ -238,14 +238,16 @@ Logging:
The format of unstructured console log entries. If the format has spaces in The format of unstructured console log entries. If the format has spaces in
it, escape the value using "<format>". Default: %d{yyyy-MM-dd HH:mm:ss,SSS} % it, escape the value using "<format>". Default: %d{yyyy-MM-dd HH:mm:ss,SSS} %
-5p [%c] (%t) %s%e%n. -5p [%c] (%t) %s%e%n.
--log-console-output <default|json> --log-console-output <output>
Set the log output to JSON or default (plain) unstructured logging. Possible Set the log output to JSON or default (plain) unstructured logging. Possible
values are: default, json. Default: default. values are: default, json. Default: default.
--log-file <path>/<file-name>.log --log-file <file> Set the log file path and filename. Default: data/log/keycloak.log.
Set the log file path and filename. Default: data/log/keycloak.log.
--log-file-format <format> --log-file-format <format>
Set a format specific to file log entries. Default: %d{yyyy-MM-dd HH:mm:ss, Set a format specific to file log entries. Default: %d{yyyy-MM-dd HH:mm:ss,
SSS} %-5p [%c] (%t) %s%e%n. SSS} %-5p [%c] (%t) %s%e%n.
--log-file-output <output>
Set the log output to JSON or default (plain) unstructured logging. Possible
values are: default, json. Default: default.
--log-gelf-facility <name> --log-gelf-facility <name>
The facility (name of the process) that sends the message. Default: keycloak. The facility (name of the process) that sends the message. Default: keycloak.
--log-gelf-host <hostname> --log-gelf-host <hostname>

View file

@ -238,14 +238,16 @@ Logging:
The format of unstructured console log entries. If the format has spaces in The format of unstructured console log entries. If the format has spaces in
it, escape the value using "<format>". Default: %d{yyyy-MM-dd HH:mm:ss,SSS} % it, escape the value using "<format>". Default: %d{yyyy-MM-dd HH:mm:ss,SSS} %
-5p [%c] (%t) %s%e%n. -5p [%c] (%t) %s%e%n.
--log-console-output <default|json> --log-console-output <output>
Set the log output to JSON or default (plain) unstructured logging. Possible Set the log output to JSON or default (plain) unstructured logging. Possible
values are: default, json. Default: default. values are: default, json. Default: default.
--log-file <path>/<file-name>.log --log-file <file> Set the log file path and filename. Default: data/log/keycloak.log.
Set the log file path and filename. Default: data/log/keycloak.log.
--log-file-format <format> --log-file-format <format>
Set a format specific to file log entries. Default: %d{yyyy-MM-dd HH:mm:ss, Set a format specific to file log entries. Default: %d{yyyy-MM-dd HH:mm:ss,
SSS} %-5p [%c] (%t) %s%e%n. SSS} %-5p [%c] (%t) %s%e%n.
--log-file-output <output>
Set the log output to JSON or default (plain) unstructured logging. Possible
values are: default, json. Default: default.
--log-gelf-facility <name> --log-gelf-facility <name>
The facility (name of the process) that sends the message. Default: keycloak. The facility (name of the process) that sends the message. Default: keycloak.
--log-gelf-host <hostname> --log-gelf-host <hostname>

View file

@ -183,14 +183,16 @@ Logging:
The format of unstructured console log entries. If the format has spaces in The format of unstructured console log entries. If the format has spaces in
it, escape the value using "<format>". Default: %d{yyyy-MM-dd HH:mm:ss,SSS} % it, escape the value using "<format>". Default: %d{yyyy-MM-dd HH:mm:ss,SSS} %
-5p [%c] (%t) %s%e%n. -5p [%c] (%t) %s%e%n.
--log-console-output <default|json> --log-console-output <output>
Set the log output to JSON or default (plain) unstructured logging. Possible Set the log output to JSON or default (plain) unstructured logging. Possible
values are: default, json. Default: default. values are: default, json. Default: default.
--log-file <path>/<file-name>.log --log-file <file> Set the log file path and filename. Default: data/log/keycloak.log.
Set the log file path and filename. Default: data/log/keycloak.log.
--log-file-format <format> --log-file-format <format>
Set a format specific to file log entries. Default: %d{yyyy-MM-dd HH:mm:ss, Set a format specific to file log entries. Default: %d{yyyy-MM-dd HH:mm:ss,
SSS} %-5p [%c] (%t) %s%e%n. SSS} %-5p [%c] (%t) %s%e%n.
--log-file-output <output>
Set the log output to JSON or default (plain) unstructured logging. Possible
values are: default, json. Default: default.
--log-gelf-facility <name> --log-gelf-facility <name>
The facility (name of the process) that sends the message. Default: keycloak. The facility (name of the process) that sends the message. Default: keycloak.
--log-gelf-host <hostname> --log-gelf-host <hostname>

View file

@ -183,14 +183,16 @@ Logging:
The format of unstructured console log entries. If the format has spaces in The format of unstructured console log entries. If the format has spaces in
it, escape the value using "<format>". Default: %d{yyyy-MM-dd HH:mm:ss,SSS} % it, escape the value using "<format>". Default: %d{yyyy-MM-dd HH:mm:ss,SSS} %
-5p [%c] (%t) %s%e%n. -5p [%c] (%t) %s%e%n.
--log-console-output <default|json> --log-console-output <output>
Set the log output to JSON or default (plain) unstructured logging. Possible Set the log output to JSON or default (plain) unstructured logging. Possible
values are: default, json. Default: default. values are: default, json. Default: default.
--log-file <path>/<file-name>.log --log-file <file> Set the log file path and filename. Default: data/log/keycloak.log.
Set the log file path and filename. Default: data/log/keycloak.log.
--log-file-format <format> --log-file-format <format>
Set a format specific to file log entries. Default: %d{yyyy-MM-dd HH:mm:ss, Set a format specific to file log entries. Default: %d{yyyy-MM-dd HH:mm:ss,
SSS} %-5p [%c] (%t) %s%e%n. SSS} %-5p [%c] (%t) %s%e%n.
--log-file-output <output>
Set the log output to JSON or default (plain) unstructured logging. Possible
values are: default, json. Default: default.
--log-gelf-facility <name> --log-gelf-facility <name>
The facility (name of the process) that sends the message. Default: keycloak. The facility (name of the process) that sends the message. Default: keycloak.
--log-gelf-host <hostname> --log-gelf-host <hostname>

View file

@ -244,14 +244,16 @@ Logging:
The format of unstructured console log entries. If the format has spaces in The format of unstructured console log entries. If the format has spaces in
it, escape the value using "<format>". Default: %d{yyyy-MM-dd HH:mm:ss,SSS} % it, escape the value using "<format>". Default: %d{yyyy-MM-dd HH:mm:ss,SSS} %
-5p [%c] (%t) %s%e%n. -5p [%c] (%t) %s%e%n.
--log-console-output <default|json> --log-console-output <output>
Set the log output to JSON or default (plain) unstructured logging. Possible Set the log output to JSON or default (plain) unstructured logging. Possible
values are: default, json. Default: default. values are: default, json. Default: default.
--log-file <path>/<file-name>.log --log-file <file> Set the log file path and filename. Default: data/log/keycloak.log.
Set the log file path and filename. Default: data/log/keycloak.log.
--log-file-format <format> --log-file-format <format>
Set a format specific to file log entries. Default: %d{yyyy-MM-dd HH:mm:ss, Set a format specific to file log entries. Default: %d{yyyy-MM-dd HH:mm:ss,
SSS} %-5p [%c] (%t) %s%e%n. SSS} %-5p [%c] (%t) %s%e%n.
--log-file-output <output>
Set the log output to JSON or default (plain) unstructured logging. Possible
values are: default, json. Default: default.
--log-gelf-facility <name> --log-gelf-facility <name>
The facility (name of the process) that sends the message. Default: keycloak. The facility (name of the process) that sends the message. Default: keycloak.
--log-gelf-host <hostname> --log-gelf-host <hostname>

View file

@ -244,14 +244,16 @@ Logging:
The format of unstructured console log entries. If the format has spaces in The format of unstructured console log entries. If the format has spaces in
it, escape the value using "<format>". Default: %d{yyyy-MM-dd HH:mm:ss,SSS} % it, escape the value using "<format>". Default: %d{yyyy-MM-dd HH:mm:ss,SSS} %
-5p [%c] (%t) %s%e%n. -5p [%c] (%t) %s%e%n.
--log-console-output <default|json> --log-console-output <output>
Set the log output to JSON or default (plain) unstructured logging. Possible Set the log output to JSON or default (plain) unstructured logging. Possible
values are: default, json. Default: default. values are: default, json. Default: default.
--log-file <path>/<file-name>.log --log-file <file> Set the log file path and filename. Default: data/log/keycloak.log.
Set the log file path and filename. Default: data/log/keycloak.log.
--log-file-format <format> --log-file-format <format>
Set a format specific to file log entries. Default: %d{yyyy-MM-dd HH:mm:ss, Set a format specific to file log entries. Default: %d{yyyy-MM-dd HH:mm:ss,
SSS} %-5p [%c] (%t) %s%e%n. SSS} %-5p [%c] (%t) %s%e%n.
--log-file-output <output>
Set the log output to JSON or default (plain) unstructured logging. Possible
values are: default, json. Default: default.
--log-gelf-facility <name> --log-gelf-facility <name>
The facility (name of the process) that sends the message. Default: keycloak. The facility (name of the process) that sends the message. Default: keycloak.
--log-gelf-host <hostname> --log-gelf-host <hostname>

View file

@ -129,14 +129,16 @@ Logging:
The format of unstructured console log entries. If the format has spaces in The format of unstructured console log entries. If the format has spaces in
it, escape the value using "<format>". Default: %d{yyyy-MM-dd HH:mm:ss,SSS} % it, escape the value using "<format>". Default: %d{yyyy-MM-dd HH:mm:ss,SSS} %
-5p [%c] (%t) %s%e%n. -5p [%c] (%t) %s%e%n.
--log-console-output <default|json> --log-console-output <output>
Set the log output to JSON or default (plain) unstructured logging. Possible Set the log output to JSON or default (plain) unstructured logging. Possible
values are: default, json. Default: default. values are: default, json. Default: default.
--log-file <path>/<file-name>.log --log-file <file> Set the log file path and filename. Default: data/log/keycloak.log.
Set the log file path and filename. Default: data/log/keycloak.log.
--log-file-format <format> --log-file-format <format>
Set a format specific to file log entries. Default: %d{yyyy-MM-dd HH:mm:ss, Set a format specific to file log entries. Default: %d{yyyy-MM-dd HH:mm:ss,
SSS} %-5p [%c] (%t) %s%e%n. SSS} %-5p [%c] (%t) %s%e%n.
--log-file-output <output>
Set the log output to JSON or default (plain) unstructured logging. Possible
values are: default, json. Default: default.
--log-gelf-facility <name> --log-gelf-facility <name>
The facility (name of the process) that sends the message. Default: keycloak. The facility (name of the process) that sends the message. Default: keycloak.
--log-gelf-host <hostname> --log-gelf-host <hostname>

View file

@ -128,14 +128,16 @@ Logging:
The format of unstructured console log entries. If the format has spaces in The format of unstructured console log entries. If the format has spaces in
it, escape the value using "<format>". Default: %d{yyyy-MM-dd HH:mm:ss,SSS} % it, escape the value using "<format>". Default: %d{yyyy-MM-dd HH:mm:ss,SSS} %
-5p [%c] (%t) %s%e%n. -5p [%c] (%t) %s%e%n.
--log-console-output <default|json> --log-console-output <output>
Set the log output to JSON or default (plain) unstructured logging. Possible Set the log output to JSON or default (plain) unstructured logging. Possible
values are: default, json. Default: default. values are: default, json. Default: default.
--log-file <path>/<file-name>.log --log-file <file> Set the log file path and filename. Default: data/log/keycloak.log.
Set the log file path and filename. Default: data/log/keycloak.log.
--log-file-format <format> --log-file-format <format>
Set a format specific to file log entries. Default: %d{yyyy-MM-dd HH:mm:ss, Set a format specific to file log entries. Default: %d{yyyy-MM-dd HH:mm:ss,
SSS} %-5p [%c] (%t) %s%e%n. SSS} %-5p [%c] (%t) %s%e%n.
--log-file-output <output>
Set the log output to JSON or default (plain) unstructured logging. Possible
values are: default, json. Default: default.
--log-gelf-facility <name> --log-gelf-facility <name>
The facility (name of the process) that sends the message. Default: keycloak. The facility (name of the process) that sends the message. Default: keycloak.
--log-gelf-host <hostname> --log-gelf-host <hostname>

View file

@ -146,14 +146,16 @@ Logging:
The format of unstructured console log entries. If the format has spaces in The format of unstructured console log entries. If the format has spaces in
it, escape the value using "<format>". Default: %d{yyyy-MM-dd HH:mm:ss,SSS} % it, escape the value using "<format>". Default: %d{yyyy-MM-dd HH:mm:ss,SSS} %
-5p [%c] (%t) %s%e%n. -5p [%c] (%t) %s%e%n.
--log-console-output <default|json> --log-console-output <output>
Set the log output to JSON or default (plain) unstructured logging. Possible Set the log output to JSON or default (plain) unstructured logging. Possible
values are: default, json. Default: default. values are: default, json. Default: default.
--log-file <path>/<file-name>.log --log-file <file> Set the log file path and filename. Default: data/log/keycloak.log.
Set the log file path and filename. Default: data/log/keycloak.log.
--log-file-format <format> --log-file-format <format>
Set a format specific to file log entries. Default: %d{yyyy-MM-dd HH:mm:ss, Set a format specific to file log entries. Default: %d{yyyy-MM-dd HH:mm:ss,
SSS} %-5p [%c] (%t) %s%e%n. SSS} %-5p [%c] (%t) %s%e%n.
--log-file-output <output>
Set the log output to JSON or default (plain) unstructured logging. Possible
values are: default, json. Default: default.
--log-gelf-facility <name> --log-gelf-facility <name>
The facility (name of the process) that sends the message. Default: keycloak. The facility (name of the process) that sends the message. Default: keycloak.
--log-gelf-host <hostname> --log-gelf-host <hostname>

View file

@ -146,14 +146,16 @@ Logging:
The format of unstructured console log entries. If the format has spaces in The format of unstructured console log entries. If the format has spaces in
it, escape the value using "<format>". Default: %d{yyyy-MM-dd HH:mm:ss,SSS} % it, escape the value using "<format>". Default: %d{yyyy-MM-dd HH:mm:ss,SSS} %
-5p [%c] (%t) %s%e%n. -5p [%c] (%t) %s%e%n.
--log-console-output <default|json> --log-console-output <output>
Set the log output to JSON or default (plain) unstructured logging. Possible Set the log output to JSON or default (plain) unstructured logging. Possible
values are: default, json. Default: default. values are: default, json. Default: default.
--log-file <path>/<file-name>.log --log-file <file> Set the log file path and filename. Default: data/log/keycloak.log.
Set the log file path and filename. Default: data/log/keycloak.log.
--log-file-format <format> --log-file-format <format>
Set a format specific to file log entries. Default: %d{yyyy-MM-dd HH:mm:ss, Set a format specific to file log entries. Default: %d{yyyy-MM-dd HH:mm:ss,
SSS} %-5p [%c] (%t) %s%e%n. SSS} %-5p [%c] (%t) %s%e%n.
--log-file-output <output>
Set the log output to JSON or default (plain) unstructured logging. Possible
values are: default, json. Default: default.
--log-gelf-facility <name> --log-gelf-facility <name>
The facility (name of the process) that sends the message. Default: keycloak. The facility (name of the process) that sends the message. Default: keycloak.
--log-gelf-host <hostname> --log-gelf-host <hostname>