# Get a logger in a Settings plugin

**URL:** https://discuss.gradle.org/t/get-a-logger-in-a-settings-plugin/27904
**Category:** Help/Discuss
**Created:** [July 25, 2018, 4:56pm UTC](https://discuss.gradle.org/t/get-a-logger-in-a-settings-plugin/27904 "2018-07-25T16:56:26Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![mjparme](https://avatars.discourse-cdn.com/v4/letter/m/8c91f0/32.png) [@mjparme](https://discuss.gradle.org/u/mjparme)
#### Post date: [July 25, 2018, 4:56pm UTC](https://discuss.gradle.org/t/get-a-logger-in-a-settings-plugin/27904/1 "2018-07-25T16:56:26Z")

</div>

I am writing a settings plugin for internal use. I can’t figure out how to get a logger. In a Project plugin you can get it with “project.getLogger()” (assuming you named the variable project of course).

The Settings class doesn’t offer a getLogger() method. I assume it is possible because in a settings.gradle file you can do “logger.quiet(“blah”)” just fine.

How do a get a logger from Settings?

```
class AwesomeSettingsPlugin implements Plugin<Settings> {

     @Override
     void apply(Settings settings) {
        //How do I get a logger here :-( 
     }
}

```

EDIT: Settings.useLogger() with a StandardOutputListener looks promising, I will give that a go

---

<div class="post-metadata">

### Author: ![evantill](https://sea1.discourse-cdn.com/gradle/user_avatar/discuss.gradle.org/evantill/32/6644_2.png) [@evantill](https://discuss.gradle.org/u/evantill)
#### Post date: [September 7, 2021, 12:26pm UTC](https://discuss.gradle.org/t/get-a-logger-in-a-settings-plugin/27904/2 "2021-09-07T12:26:16Z")

</div>

I have the same need and can not find the solution but have a look at this nice workaround :

> [@Logging from Settings](https://discuss.gradle.org/t/logging-from-settings/27975/2):
>
> I used the following in a plugin I wrote: SettingsPlugin.kt: import org.gradle.api.logging.Logging import org.gradle.api.logging.LogLevel class SettingsPlugin : Plugin\<Settings\> { private val logger = Logging.getLogger(SettingsPlugin::class.java) override fun apply(settings: Settings) { logger.log(LogLevel.WARN, "Serious warning") } }

In my case, I have defined an extension

```kotlin
import org.gradle.api.initialization.Settings
import org.gradle.api.logging.Logger
import org.gradle.api.logging.Logging

val Settings.logger: Logger by lazy {
  Logging.getLogger(Settings::class.java)
}

```
