Groovy - configurando las propiedades de registro dependiendo del entorno

Estoy escribiendo una aplicación Groovy simple que necesita hacer algo de registro. Las propiedades reales de cómo se registran las cosas dependerán del entorno en particular. Por ejemplo, mientras desarrollo, solo quiero iniciar sesión en la consola, en pruebas y producción es posible que desee escribir en un archivo y en producción, es posible que desee enviar un correo electrónico para los eventos más graves.

Ahora mismo lo que estoy haciendo se ve así:

import org.apache.log4j.Logger
import org.apache.log4j.PropertyConfigurator

class BaseClass {
    protected config

    static Logger logger = Logger.getLogger(BaseClient.class)

    def BaseClass(env) {
        def configFilePath = // whatever

        config = new JsonSlurper().parseText(configFile.text)[options.env]

        def logConfigFilePath = ['somelogdir', config.log_file].join(File.separator)
        PropertyConfigurator.configure(logConfigFilePath)
    }
}

y luego todas mis clases que necesitan hacer el registro heredado deBaseClass.

De esta manera, puedo especificar un nombre de archivo diferente para cada entorno, y puedo leer la configuración de registro desde allí. Pero parece un montón de repetitivo, y me obliga a usar una jerarquía que puede no ser la ideal.

Por otra parte,aquí Veo que puedo obtener un registrador con una simple anotación.

¿Hay alguna forma de obtener diferentes registradores en función del entorno, que pueden configurarse en tiempo de ejecución?

Respuestas a la pregunta(2)

Su respuesta a la pregunta