All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.testerum.web_backend.services.initializers.info_logging.InfoLoggerUtils.kt Maven / Gradle / Ivy

package com.testerum.web_backend.services.initializers.info_logging

import org.apache.commons.lang3.StringUtils
import org.slf4j.Logger

object InfoLoggerUtils {

    fun logMap(logger: Logger,
               map: Map,
               prefix: String = "* ") {
        if (!logger.isInfoEnabled) {
            return
        }

        val mapWithStringValues = map.mapValues { it.value?.toString().orEmpty() }

        val sizeOfBiggestKey = findSizeOfBiggestKey(mapWithStringValues) + 2

        mapWithStringValues.forEach { key, value ->
            val keyToDisplay = StringUtils.rightPad("[$key]", sizeOfBiggestKey)
            val valueToDisplay = getValueToDisplay(key, value)

            logger.info("{}{} = [{}]", prefix, keyToDisplay, valueToDisplay)
        }
    }

    private fun findSizeOfBiggestKey(map: Map): Int {
        return map.keys
            .asSequence()
            .map { it.length }
            .maxOrNull()
            ?: 0
    }

    private fun getValueToDisplay(key: String?,
                                  value: String): String {
        return if (key != null && key.toLowerCase().contains("pass")) {
            "****************************************"
        } else {
            value
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy