grails:
exceptionresolver:
params:
exclude:
- password
- creditCard
4.1.3 Logging
Version: 4.0.0
Table of Contents
4.1.3 Logging
By default logging in Grails 3.0 is handled by the Logback logging framework and can be configured with the grails-app/conf/logback.groovy
file.
If you prefer XML you can replace the logback.groovy file with a logback.xml file instead.
|
For more information on configuring logging refer to the Logback documentation on the subject.
4.1.3.1 Logger Names
Grails artifacts (controllers, services …) get injected a log
property automatically.
Prior to Grails 3.3.0, the name of the
logger for Grails Artifact followed the convention grails.app.<type>.<className>
, where type is the
type of the artifact, for example, controllers
or services
, and className
is the fully
qualified name of the artifact.
Grails 3.3.x simplifies logger names. The next examples illustrate the changes:
BookController.groovy
located at grails-app/controllers/com/company
NOT annotated with @Slf4j
Logger Name (Grails 3.3.x or higher) |
Logger Name (Grails 3.2.x or lower) |
|
|
BookController.groovy
located at grails-app/controllers/com/company
annotated with @Slf4j
Logger Name (Grails 3.3.x or higher) |
Logger Name (Grails 3.2.x or lower) |
|
|
BookService.groovy
located at grails-app/services/com/company
NOT annotated with @Slf4j
Logger Name (Grails 3.3.x or higher) |
Logger Name (Grails 3.2.x or lower) |
|
|
BookService.groovy
located at grails-app/services/com/company
annotated with @Slf4j
Logger Name (Grails 3.3.x or higher) |
Logger Name (Grails 3.2.x or lower) |
|
|
BookDetail.groovy
located at src/main/groovy/com/company
annotated with @Slf4j
Logger Name (Grails 3.3.x or higher) |
Logger Name (Grails 3.2.x or lower) |
|
|
4.1.3.2 Masking Request Parameters From Stacktrace Logs
When Grails logs a stacktrace, the log message may include the names and values of all of the request parameters for the current request.
To mask out the values of secure request parameters, specify the parameter names in the grails.exceptionresolver.params.exclude
config property:
Request parameter logging may be turned off altogether by setting the grails.exceptionresolver.logRequestParameters
config property to false. The default value is true when the application is running in DEVELOPMENT mode and false for all other
environments.
grails:
exceptionresolver:
logRequestParameters: false
4.1.3.3 External Configuration File
If you set the configuration property logging.config
, you can instruct Logback
to use an external configuration file.
logging:
config: /Users/me/config/logback.groovy
Alternatively, you can supply the configuration file location with a system property:
$ ./gradlew -Dlogging.config=/Users/me/config/logback.groovy bootRun
Or, you could use an environment variable:
$ export LOGGING_CONFIG=/Users/me/config/logback.groovy
$ ./gradlew bootRun