# Howto: make detekt silent | Detekt
detekt's reporting mechanism relies on implementations of ConsoleReport's.

Skip to main content

# Howto: make detekt silent

August 14, 2019 · One min read

detekt's reporting mechanism relies on implementations of ConsoleReport's. The cli module and therefore the Gradle plugin implement a bunch of this reports.

A typical detekt report will look like following:

There are many different parts which might or might not interest you. If one part is not important to you, it can be excluded in the yaml configuration file. A silent configuration would exclude all possible processors and reports:

    processors:
      active: true
      exclude:
        - 'DetektProgressListener'
        - 'FunctionCountProcessor'
        - 'PropertyCountProcessor'
        - 'ClassCountProcessor'
        - 'PackageCountProcessor'
        - 'KtFileCountProcessor'

    console-reports:
      active: true
      exclude:
        - 'ProjectStatisticsReport'
        - 'ComplexityReport'
        - 'NotificationReport'
        - 'FindingsReport'
        - 'BuildFailureReport'

Running with this config won't produce any console messages:

Just verify that the `./report.txt` is not empty ;).

We might find detekt's `FindingsReport` too verbose and just want to print one message line per finding. This can be achieved by implementing a custom `ConsoleReport`.

    class SingleLineFindingsReport : ConsoleReport() {

        override fun render(detektion: Detektion): String? =
            detektion.findings.values
                .flatten()
                .joinToString("\n") { "${it.id} - ${it.message} - ${it.entity.location.file}" }
    }

Combined with our silent configuration only messages are printed when findings are actually found:

See the extension documention on how to let detekt know about your custom report.