• Reference
  • Version · 6.0
  • Change Automation Reference

log-level

Last updated: September 29, 2026

The --log-level parameter controls the amount of messages that are generated when running Liquibase commands. You can set --log-level to the following values:

- SEVERE (least verbose): Show serious failures that may prevent program execution. - WARNING: Show potential problems for program execution. - INFO: Show informational messages. - FINE (most verbose; formerly DEBUG): Show tracing information of program execution and minor failures. - OFF: Hide all log messages. - If you set --log-level to a particular level, it will show all messages at that level and at less verbose levels. For example, setting the log level to SEVERE only shows SEVERE logs, but setting it to FINE shows FINE, INFO, WARNING, and SEVERE logs.

The --log-level default value is OFF. However, if you use the --log-file attribute to send your logs to a different file and don't specify the --log-level parameter, Liquibase will automatically change the --log-level default value from OFF to SEVERE.

Uses

The --log-level parameter applies to all Liquibase commands. It can be used to get more information about the actions that Liquibase commands perform, as well as provide helpful information to resolve errors.

The value of SEVERE provides messages regarding serious errors. You may find it useful to set the --log-level to INFO to see a more complete list of the operations that a command performs. Use the FINE level to help resolve errors.

Using the --log-level parameter

For best results, specify all commands and parameters in the --kebab-case format in the CLI. If your preference is camelCase, it also works in the CLI.

--log-level is an optional parameter that is either set in the Liquibase properties file or specified on the command line. The --log-level specified on the command line overrides the value set in the properties file.

Examples

liquibase --log-level=FINE update

liquibase --log-level=INFO update-testing-rollback

Maven

As of Liquibase Secure 6.0, the Liquibase log level also sets how much the Liquibase Maven plugin prints to the Maven console, wherever you set it. For example, LIQUIBASE_LOG_LEVEL=ERROR keeps INFO lines such as Executing on Database: out of the build output.

A log level set with <logLevel> in your pom.xml or with the -Dliquibase.logLevel system property overrides the LIQUIBASE_LOG_LEVEL environment variable. The environment variable in turn overrides liquibase.logLevel in the properties file. When you run Maven in debug mode with -X, the plugin ignores the environment variable and the properties file value.

If you use Maven, you can control the log level of Liquibase Maven plugin with MAVEN_OPTS by passing the following command: MAVEN_OPTS=-Dorg.slf4j.simpleLogger.defaultLogLevel=DEBUG. You can also edit the log level in the ${maven.home}/conf/logging/simplelogger.properties file.

Note: To disable the logging, run MAVEN_OPTS=-Dorg.slf4j.simpleLogger.defaultLogLevel=OFF. For more information, see Configuring logging.

Syntax

You can set this parameter in the following ways:

Option

Syntax

Liquibase properties file (defaults file)

liquibase.logLevel: <string>

Global flow file argument

globalArgs: { log-level: "<string>" }

Global CLI parameter

liquibase --log-level=<string> update --changelog-file=example-changelog.xml

JVM system property (JAVA_OPTS environment variable)

Unix:

JAVA_OPTS=-Dliquibase.logLevel=<string>

Windows:

JAVA_OPTS=-D"liquibase.logLevel"=<string>

Liquibase environment variable

LIQUIBASE_LOG_LEVEL=<string>

For more information, see Working with Command Parameters.

Using the --sql-log-level property alongside --log-level

The SQL log level is set to FINE by default. This behavior can be modified using --sql-log-level property.

For example, if you would like the log SQL statements to have the INFO log level, then you would specify --sql-log-level=INFO in your Liquibase command:

liquibase --sql-log-level=INFO --log-level=INFO update

Note: The --log-level property is required for --sql-log-level to operate successfully.

Other ways to specify --sql-log-level

  1. Define the JAVA_OPTS environment variable before running your Liquibase command: JAVA_OPTS="-Dliquibase.sql.logLevel=INFO -Dliquibase.logLevel=INFO"

  2. Define environment variables: LIQUIBASE_SQL_LOG_LEVEL=INFO and LIQUIBASE_LOG_LEVEL=INFO

  3. Command line argument: --sql-log-level=INFO --log-level=INFO

  4. liquibase.properties setting: liquibase.sql.logLevel=INFO and liquibase.logLevel=INFO

Using --mirror-console-messages-to-log alongside --log-level

Console messages, such as the banner, each changeset as it runs, and the success message, reach the log only when Liquibase mirrors them. As of Liquibase Secure 6.0, Liquibase mirrors them by default only when you set --log-file, and you can change that with --mirror-console-messages-to-log. Mirrored messages are INFO records, so the log keeps them only when --log-level is INFO or more detailed.

For example, liquibase --log-file=liquibase.log --log-level=INFO update writes the console messages into liquibase.log alongside the log records. Without --log-file, --log-level=INFO shows each console message on the console once.

Using --verbosity alongside --log-level

As of Liquibase Secure 6.0, --verbosity also influences the log level. Each verbosity tier implies a log level, which Liquibase applies only when --log-level is not set.

Verbosity

Implied log level

quiet

SEVERE

normal

OFF

verbose

FINE

An explicitly set --log-level always overrides the level implied by --verbosity. For example, liquibase --verbosity=quiet --log-level=INFO update runs at the quiet output tier but keeps the log level at INFO.

Embedded and library use

As of Liquibase Secure 6.0, Liquibase configures only a logging context that Liquibase created and owns. When you embed Liquibase in your own application, setting --log-level no longer changes your application's own log levels or handlers. Control your application's logging through its own configuration.