log-level

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

  • SEVERE (highest level) – Show serious failures that may prevent program execution.
  • WARNING – Show potential problems for program execution.
  • INFO – Show informational messages.
  • FINE (lowest level; 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 higher levels of importance.

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

The --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.

Tip: 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.

Examples:

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

Syntax

For more information, see Working with Command Parameters. You can set this parameter in the following ways:

Option Syntax
Liquibase properties file
liquibase.logLevel: <string>
Global CLI parameter
liquibase
 --log-level=<string> update
 --changelog-file=mychangelog.xml

JVM system property

JAVA_OPTS Environment Variable

macOS/Linux:
JAVA_OPTS=-Dliquibase.logLevel=<string>
Windows:
set JAVA_OPTS=-Dliquibase.logLevel=<string>
Liquibase Environment Variables macOS/Linux:
LIQUIBASE_LOG_LEVEL=<string>
Windows:
set LIQUIBASE_LOG_LEVEL=<string>

Note: These commands only apply to the current shell. To set permanent environment variables, see Liquibase Environment Variables.

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 prior to running your Liquibase command:
  2. JAVA_OPTS="-Dliquibase.sql.logLevel=INFO -Dliquibase.logLevel=INFO"
  3. Define environment variables:
  4. LIQUIBASE_SQL_LOG_LEVEL=INFO and LIQUIBASE_LOG_LEVEL=INFO
  5. Command line argument:
  6. --sql-log-level=INFO --log-level=INFO
  7. liquibase.properties setting:
  8. liquibase.sql.logLevel=INFO and liquibase.logLevel=INFO

Related links