• Reference
  • Version · 6.0
  • Change Automation Reference

sql-log-level

Last updated: September 29, 2026

The --sql-log-level parameter controls the amount of messages that are generated from SQL statements in Liquibase. You can set --sql-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 --sql-log-level to a particular level, it will show all messages at that level and less verbose levels. For example, setting the SQL log level to SEVERE only shows SEVERE SQL logs, but setting it to FINE shows FINE, INFO, WARNING, and SEVERE SQL logs. The --sql-log-level default value is FINE.

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

Uses

In Liquibase 4.6.2+, the --sql-log-level parameter lets you set the log level for SQL output that Liquibase generates. This allows you to have different log levels for Liquibase output and the output of the SQL Liquibase runs.

If you don't specify a value for --sql-log-level, all SQL output is generated according to the --log-level parameter.

Syntax

You can set this parameter in the following ways:

Option

Syntax

Liquibase properties file (defaults file)

liquibase.sql.logLevel: <string>

Global flow file argument

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

Global CLI parameter

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

JVM system property (JAVA_OPTS environment variable)

Unix:

JAVA_OPTS=-Dliquibase.sql.logLevel=<string>

Windows:

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

Liquibase environment variable

LIQUIBASE_SQL_LOG_LEVEL=<string>

For more information, see Working with command parameters

Output

The following examples show the Liquibase logs of when you omit the name of the table in your CREATE_TABLE statement. The examples assume that --log-level=SEVERE:

Output

loading

loading

loading

[2024-05-30 14:36:44] SEVERE [liquibase.changelog] ChangeSet changelog.xml::3::nvoxland encountered an exception.

Row counts

Setting --sql-log-level to FINE prints the full text of every SQL statement Liquibase runs. SQL statements may contain sensitive values. To print how many rows each INSERT, UPDATE, or DELETE statement changed without printing the SQL itself, use --show-rows-affected. In some cases, this can prevent sensitive values from being printed to the console. --show-rows-affected works independently of --sql-log-level, so you can set either one without affecting the other.

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 --sql-log-level no longer changes your application's own log levels or handlers.