filter-log-messages
The filter-log-messages
parameter is a Boolean that defines whether Liquibase should filter the log messages for potentially insecure data. For now, Liquibase checks for and filters out the Liquibase Hub API key. The default value is true
.
Uses
Liquibase log messages represent the records of events that occur when running commands. With log messages, you can typically find the reason for errors or exceptions and troubleshoot a problem. However, before Liquibase sends all the information to STDERR
or the log file, you can prevent sensitive data from being logged in the verbose log messages by using the filter-log-messages
parameter.
You can also use the filter-log-messages
parameter along with the log-level, which sets the amount of messages generated when running Liquibase commands.
Although, there may be cases when you need to set the filter-log-messages
parameter to false
:
- If you are trying to debug something related to a password or key and the filtered log messages can be helpful
- If you want to improve performance without checking log message strings. For example, when you use the
FINE
logging or other times when there are a lot of log messages.
Setting the filter-log-messages
parameter
You can set filter-log-messages
in four ways:
- In the Liquibase properties file
- As a global parameter in the CLI
- As a JVM system property
- As an environment variable (Liquibase Pro)
Liquibase properties file parameter
In Liquibase 4.1+, add the following to Liquibase properties file:
liquibase.filterLogMessages
: <true|false>
CLI global parameter
In your command line, use a global parameter with a single Liquibase command:
liquibase --filter-log-messages
=<true|false>
update
--changelog-file=dbchangelog.xml
Java system property
In your command line, use the JAVA_OPTS Environment Variable to set a JVM system property:
Mac/Linux syntax:
JAVA_OPTS=-Dliquibase.filterLogMessages
=<true|false>
Windows syntax:
set JAVA_OPTS=-Dliquibase.filterLogMessages
=<true|false>
Note: To use a Liquibase command alongside JAVA_OPTS
, add && liquibase <command>
to the end of your input.
Environment variable (Liquibase Pro)
In Liquibase Pro, set an environment variable:
Mac/Linux syntax:
LIQUIBASE_FILTER_LOG_MESSAGES
=<true|false>
Windows syntax:
set LIQUIBASE_FILTER_LOG_MESSAGES
=<true|false>
Note: These environment variable commands only apply to the current shell. If you need to pass an environment variable to a child process without affecting the parent process, you can use the export
command on Mac/Linux or the setx
command on Windows.