(Quick Reference) # 4.1.3 Logging Version: 6.0.0 ## Table of Contents ## 4.1.3 Logging Since Grails 3.0, logging 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)
`com.company.BookController` | `grails.app.controllers.com.company.BookController`
`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)
`com.company.BookController` | `com.company.BookController`
`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)
`com.company.BookService` | `grails.app.services.com.company.BookService`
`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)
`com.company.BookService` | `com.company.BookService`
`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)
`com.company.BookDetail` | `com.company.BookDetail`
## 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: grails-app/conf/application.yml
    grails:
        exceptionresolver:
            params:
                exclude:
                    - password
                    - creditCard
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-app/conf/application.yml
    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. grails-app/conf/application.yml
    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
| Quick Reference (hide)