¿No se encontraron apéndices para el registrador (log4j)?

370

Puse log4j en mi buildpath, pero recibo el siguiente mensaje cuando ejecuto mi aplicación:

log4j:WARN No appenders could be found for logger (dao.hsqlmanager).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

¿Qué significan estas advertencias? ¿Cuál es el appender aquí?

maximus
fuente
55
Eso parece ser una advertencia de tiempo de ejecución. ¿Estás seguro de que ves esto cuando compilas?
maba
55
¿Intentó visitar la URL en la última línea de las advertencias?
Jesper
44
¡¡¡si!!! pero no dice mucho ... ¡Descubrí que necesito un archivo de propiedades para configurar mi appender!
maximus
Edite manualmente los archivos de configuración para agregar el apéndice. Asegúrese de tener el documento de configuración correcto y válido.
Roman C
Consulte también la pregunta log4j: WARN No se encontraron
apéndices

Respuestas:

465

Esta breve introducción a la guía log4j es un poco antigua pero aún válida.

Esa guía le dará información sobre cómo usar los registradores y los anexos.


Solo para comenzar, tiene dos enfoques simples que puede tomar.

El primero es agregar esta línea a su método principal:

BasicConfigurator.configure();

El segundo enfoque es agregar este log4j.propertiesarchivo estándar (tomado de la guía mencionada anteriormente) a su classpath:

# Set root logger level to DEBUG and its only appender to A1.
log4j.rootLogger=DEBUG, A1

# A1 is set to be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender

# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
maba
fuente
3
Solo el primer paso está bien. Cita de la breve introducción a la guía log4j
ray6080
65
Para nuevos tropiezos ... agregue el archivo log4j.properties a src / main / resources y eso supone que tiene un proyecto maven. Las cosas en src / main / resources están incluidas en el classpath.
keni
3
En la configuración del módulo abierto de IntelliJ idea y seleccione su carpeta de recursos y haga clic en recursos, agregará automáticamente todos sus recursos al classpath.
Waqas
1
No ha ayudado Uso Eclipse Neon para C ++, y puse las propiedades log4j.pro junto con el ejecutable eclipse y no ayudé
Nadav B
log4j.rootLogger=DEBUG, A1es la línea que me faltaba todo el tiempo.
Mohammad Faisal
74

Parece que necesita agregar la ubicación de su log4j.propertiesarchivo a Classpath en Eclipse.

Asegúrese de que su proyecto esté abierto en Eclipse, luego haga clic en el menú "Ejecutar" en la parte superior de Eclipse y haga clic en lo siguiente:

  1. correr
  2. Ejecutar configuraciones
  3. Classpath (pestaña)
  4. Entradas de usuario
  5. Avanzado (botón a la derecha)
  6. Agregar carpetas
  7. luego navegue a la carpeta que contiene su archivo log4j.properties
  8. Aplicar
  9. correr

El mensaje de error ya no debería aparecer.

JDJ
fuente
Los mensajes de advertencia no aparecen ahora pero los registros aún no están escritos en la ubicación deseada
Arpan Saini
48

Solución rápida:

  1. agregar código a la función principal :

    String log4jConfPath = "/path/to/log4j.properties";
    PropertyConfigurator.configure(log4jConfPath);
  2. cree un archivo llamado log4j.properties en / path / to

    log4j.rootLogger=INFO, stdout
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.Target=System.out
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{2}: %m%n
lancerex
fuente
Coloque el archivo log4j.properties dentro del directorio de recursos como src / test / resource
Alok
Para evitar la declaración explícita de la ruta log4j.properties; colóquelo dentro de su carpeta de proyecto y acceda a él como String log4jConfPath = System.getProperty ("user.dir") + File.separator + "log4j.properties";
Amimo Benja
36

Esto es sólo una advertencia.

Fijación

Esto ocurre cuando los archivos de configuración por defecto log4j.propertiesy log4j.xmlno puede ser encontrado y las lleva a cabo la aplicación necesita ninguna configuración explícita.

Para solucionarlo, simplemente cree / copie log4j.propertieso log4j.xmlen su ubicación en el classpath (generalmente lo mismo que los archivos jar).

Java opción configurar opcionalmente: -Dlog4j.configuration=file:///path/to/log4j.properties.

log4jutiliza Thread.getContextClassLoader().getResource()para localizar los archivos de configuración predeterminados y no verifica directamente el sistema de archivos. Conocer la ubicación adecuada para colocar log4j.propertieso log4j.xmlrequiere comprender la estrategia de búsqueda del cargador de clases en uso. log4jno proporciona una configuración predeterminada ya que la salida a la consola o al sistema de archivos puede estar prohibida en algunos entornos.

Depuración

Para la depuración, puede intentar usar el -Dlog4j.debug=trueparámetro.

Configuración de log4j.properties

Configuración de muestra de log4j.properties:

# Set root logger level to DEBUG and its only appender to A1.
log4j.rootLogger=DEBUG, A1

# A1 is set to be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender

# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

# Print only messages of level WARN or above in the package com.foo.
log4j.logger.com.foo=WARN

Aquí hay otro archivo de configuración que usa múltiples apéndices:

log4j.rootLogger=debug, stdout, R

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.log

log4j.appender.R.MaxFileSize=100KB
# Keep one backup file
log4j.appender.R.MaxBackupIndex=1

log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n

Apache Solr

Si usa Solr , copie <solr>/example/resources/log4j.propertiesen una ubicación en el classpath .

La configuración de muestra de log4j.propertiesSolr es así:

#  Logging level
solr.log=logs/
log4j.rootLogger=INFO, file, CONSOLE

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender

log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%-4r [%t] %-5p %c %x \u2013 %m%n

#- size rotation with log cleanup.
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.MaxFileSize=4MB
log4j.appender.file.MaxBackupIndex=9

#- File to log to and log format
log4j.appender.file.File=${solr.log}/solr.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%-5p - %d{yyyy-MM-dd HH:mm:ss.SSS}; %C; %m\n

log4j.logger.org.apache.zookeeper=WARN
log4j.logger.org.apache.hadoop=WARN

# set to INFO to enable infostream log messages
log4j.logger.org.apache.solr.update.LoggingInfoStream=OFF

Ver también:

kenorb
fuente
13

La mayoría de las respuestas aquí sugirieron que el log4j.propertiesarchivo se coloque en la ubicación correcta (para el proyecto maven, debe ubicarse en src/main/resources)

Pero para mí, el problema es que mi log4j.propertiesno está configurado correctamente. Aquí hay una muestra que me funciona, puedes probarla primero.

# Root logger option
log4j.rootLogger=INFO, stdout

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
Searene
fuente
2
El hecho de que log4j considere que "no se puede encontrar el archivo" y "especificaciones incompletas en el archivo" como el mismo error es una pérdida de tiempo.
Ed Norris
1
Para mí, esta es la mejor respuesta. Voto y he agregado algunas explicaciones en su respuesta.
schlebe
La mejor respuesta para mi !!!
nosequeweaponer
8

Como se explicó anteriormente, hay 2 enfoques

El primero es agregar esta línea a su método principal:

BasicConfigurator.configure();

El segundo enfoque es agregar este archivo log4j.properties estándar a su classpath:

Mientras toma el segundo enfoque, debe asegurarse de inicializar el archivo correctamente, por ejemplo.

Properties props = new Properties();
props.load(new FileInputStream("log4j property file path"));
props.setProperty("log4j.appender.File.File", "Folder where you want to store log files/" + "File Name");

Asegúrese de crear la carpeta requerida para almacenar archivos de registro.

AkashK
fuente
Estaba teniendo el mismo problema y usé BasicConfigurator.configure (); en el método principal y ahora el código se está ejecutando correctamente.
Surabhi Pandey
7

Utiliza el Loggeren su código para registrar un mensaje. El Appenderes un objeto agregado a un Loggerpara escribir el mensaje a un objetivo específico. Hay FileAppenderque escribir en archivos de texto o ConsoleAppenderescribir en la consola. Debe mostrar su código de la configuración de Logger and Appender para obtener más ayuda.

lea el tutorial para comprender mejor la interacción de Logger y Appender.

Simulante
fuente
6

Asegúrese de que el archivo de propiedades se haya configurado correctamente. Y de nuevo, parece que el compilador no puede encontrar el archivo de propiedades, puede establecerlo de la siguiente manera en el pom (solo cuando usa el proyecto maven).

<build>
       <sourceDirectory> src/main/java</sourceDirectory>
       <testSourceDirectory> src/test/java</testSourceDirectory>
        <resources>
             <resource>
                  <directory>resources</directory>
             </resource>
        </resources>           
</build >
Belvey
fuente
¡Esta! Pasé horas para encontrar una respuesta. ¡Mi código de caso funciona bien en Linux pero tengo este error en Windows (mismo NB IDE) y todas las soluciones anteriores no funcionan!
Tiana987642
5

Me sale el mismo error. Aquí el problema que lleva a este mensaje de error:

Creo algunos objetos que usan el Logger antes de configurar el log4j:

Logger.getLogger(Lang.class.getName()).debug("Loading language: " + filename);

Solución: configure log4j al principio en el método principal:

PropertyConfigurator.configure(xmlLog4JConfigFile); 
// or BasicConfigurator.configure(); if you dont have a config file
a3po2.0
fuente
¡¡¡Muchas gracias!!! Todos están asumiendo Spring o Tomcat, o lo que sea para inicializar la configuración.
Windgazer
3

Otra razón por la que esto puede suceder (en RCP4) es que está utilizando múltiples marcos de registro en su archivo de destino. Como ejemplo, esto ocurrirá si usa una combinación de slf4j, log4j y ch.qos.logback.slf4j en la pestaña de contenido de los archivos de destino.

ekjcfn3902039
fuente
3

Agregue lo siguiente como primer código:

Properties prop = new Properties();
prop.setProperty("log4j.rootLogger", "WARN");
PropertyConfigurator.configure(prop);
fty4
fuente
2

En mi caso, el error fue la bandera " aditividad ". Si es "falso" para su paquete de proyecto raíz, entonces los paquetes secundarios no tendrán un apéndice y verá el error " appender no encontrado ".

Antonio Martin
fuente
2

Me enfrenté al mismo problema cuando intenté ejecutar la clase de prueba JUnit.

El problema se resuelve después de agregar manualmente el archivo log4j.properties en la carpeta src / test / resources.

Agregar el código siguiente al archivo log4j.properties resolvió el problema:

# Root logger option
log4j.rootLogger=INFO, file, stdout

# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C:\\logging.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
Yamuna Erraguntla
fuente
1

Me encontré con este problema al intentar construir un jar ejecutable con maven en intellij 12. Resultó que debido a que el archivo de manifiesto de Java no incluía una ruta de clase, el archivo de propiedades log4j no se podía encontrar en el nivel raíz (donde el el archivo jar se ejecutó desde)

FYI estaba obteniendo el registrador de esta manera:

Logger log = LogManager.getLogger(MyClassIWantedToLogFrom.class);

Y pude hacerlo funcionar con un archivo pom que incluía esto:

         <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.2-beta-5</version>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath> 
                        <mainClass>com.mycompany.mainPackage.mainClass</mainClass>
                    </manifest>
                    <manifestEntries>
                        <Class-Path>.</Class-Path> <!-- need to add current directory to classpath properties files can be found -->
                    </manifestEntries>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
jmort
fuente
1

Asegúrese de que su proyecto esté abierto en Eclipse, luego haga clic en el menú "Ejecutar" en la parte superior de Eclipse y haga clic en lo siguiente:

  1. correr

  2. Ejecutar configuraciones

  3. Classpath (pestaña)

  4. Entradas de usuario

  5. agregar jarra a la derecha

  6. agregar archivo jar log4j

  7. Aplicar

  8. correr

El mensaje de error ya no debería aparecer.

Varaj Vignesh
fuente
1

La razón puede ser la falta de la palabra staticen algunos:

final static Logger logging = Logger.getLogger(ProcessorTest.class);

Si hago que el registrador sea el campo de instancia, recibo exactamente esta misma advertencia:

No appenders could be found for logger (org.apache.kafka.producer.Sender)

Lo que es peor, la advertencia apunta no a ProcessorTestdónde vive el error, sino a una clase absolutamente diferente (Remitente) como fuente de problemas. ¡Esa clase tiene el registrador de conjuntos correcto y no necesita ningún cambio! ¡Podríamos buscar el problema por siglos!

Gangnus
fuente
1

Me enfrenté al mismo problema cuando uso log4j2. Mi problema es causado por usar una biblioteca dependiente incorrecta:

<dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <scope>runtime</scope>
    </dependency>

En cambio, debería usar:

<dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <scope>runtime</scope>
    </dependency>

En mi caso, tengo un log4j2.xml definido en mi directorio de "recursos", y especificado para usarlo por:

System.setProperty("log4j.configurationFile", "log4j2.xml");
John Zhang
fuente
1

Log4J muestra este mensaje de advertencia cuando el código Log4j Java está buscando crear una primera línea de registro en su programa.

En este momento, Log4j hace 2 cosas

  1. busca encontrar el log4j.propertiesarchivo
  2. busca instanciar el apéndice definido en log4j.properties

Si log4Jno encuentra el log4j.propertiesarchivo o si el apéndice declarado en log4j.rootloggerno está definido en otra parte del log4j.propertiesarchivo, se muestra el mensaje de advertencia.

PRECAUCIÓN: el contenido del archivo de propiedades debe ser correcto.

El siguiente contenido NO es correcto

log4j.rootLogger=file

log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=c:/Trace/MsgStackLogging.log
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%m%n
log4j.appender.FILE.ImmediateFlush=true
log4j.appender.FILE.Threshold=debug
log4j.appender.FILE.Append=false

¡porque el fileappender se declara en LOWER-CASE en la log4j.rootloggerdeclaración y se define en la declaración log4j.appender usando UPPER-CASE!

Un archivo correcto sería

log4j.rootLogger=FILE

log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=c:/Trace/MsgStackLogging.log
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%m%n
log4j.appender.FILE.ImmediateFlush=true
log4j.appender.FILE.Threshold=debug
log4j.appender.FILE.Append=false

Si se utiliza MAVEN, debe colocar los archivos log4j.properties en src/main/resourcesY comenzar una compilación de MAVEN.

El archivo Log4j.properties se copia en la target/classescarpeta.

¡Log4J usa el log4j.propertiesarchivo que encontró target/classes!

Schlebe
fuente
1

Yo tuve este problema también. Olvidé marcar el directorio de recursos en IntelliJ IDEA

  1. Haga clic derecho en su directorio
  2. Marcar directorio como
  3. Raíz de los recursos
Sadap
fuente
1

Si está utilizando Eclipse y este problema apareció de la nada después de que todo funcionó bien de antemano, intente hacerlo Project - Clean - Clean.

Stijena
fuente
0

Mi instalación de Eclipse no se pudo encontrar log4j.propertiesal ejecutar pruebas JUnit desde Eclipse, aunque el archivo estaba ubicado ensrc/test/resources .

La razón fue que Eclipse (o el conector m2e ) no copiaba el contenido de src/test/resourcesla carpeta de salida esperada target/test-classes; la causa raíz era que en las propiedades del proyecto en Java Build Path -> pestaña Fuente -> Carpetas de origen en la ruta de compilación -> src / prueba / recursos , de alguna manera hubo una Excluded: **entrada. Eliminé esa entrada excluida .

Alternativamente, podría haber copiado manualmente src/test/resources/log4j.propertiesa target/test-classes/log4j.properties.

Abdull
fuente
0

Si log4j.propertiesrealmente está en el classpath, está utilizando Spring Boot para hacer un archivo WAR para su implementación en un servidor de aplicaciones, está omitiendo un web.xmlarchivo a favor de la configuración automática de Spring Boot y no está recibiendo ningún mensaje de registro, necesita explícitamente configurar Log4j. Suponiendo que está utilizando Log4j 1.2.x:

public class AppConfig extends SpringBootServletInitializer {

    public static void main( String[] args ) {
        // Launch the application
        ConfigurableApplicationContext context = SpringApplication.run( AppConfig.class, args );
    }

    @Override
    protected SpringApplicationBuilder configure( SpringApplicationBuilder application ) {
        InputStream log4j = this.getClass().getClassLoader().getResourceAsStream("log4j.properties");
        PropertyConfigurator.configure(log4j);
        return application;
    }

// Other beans as required...
}
Brian Schalme
fuente
0

Tal vez agregar el proyecto relevante contiene log4j en la ruta de compilación de Java, agregué mahout_h2o cuando encontré este problema en un proyecto de mahout usando eclipse, ¡funciona!

Viento de la noche
fuente
0

Si trabaja junto con muchos proyectos, puede enfrentar un problema de estilo.

* debe tener un archivo lof4j.properties y este archivo incluye las propiedades de registro de otro proyecto.

* Además, puede intentar colocar los archivos de propiedades log4j en la ruta src cuando el proyecto funciona Linux OS, las bibliotecas de otro proyecto y los archivos log4.properties pueden estar en una carpeta en una ubicación en el classpath.

yasin
fuente
0

Primera importación:

 import org.apache.log4j.PropertyConfigurator;

Luego agregue el siguiente código al método principal:

String log4jConfPath ="path to/log4j.properties";
PropertyConfigurator.configure(log4jConfPath);

Cree un archivo en la ruta y agregue el código siguiente a ese archivo.

log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{2}: %m%n
himansug
fuente
0

La solución en este sitio funcionó para mí https://crunchify.com/java-how-to-configure-log4j-logger-property-correctly/ . Ahora no veo ninguna advertencia de log4j

Puse esto en un archivo log4j.properties que puse en src / main / resources

# This sets the global logging level and specifies the appenders
log4j.rootLogger=INFO, theConsoleAppender

# settings for the console appender
log4j.appender.theConsoleAppender=org.apache.log4j.ConsoleAppender
log4j.appender.theConsoleAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.theConsoleAppender.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
ihossain
fuente
0

En primer lugar: cree un archivo log4j.properties

# Root logger option
log4j.rootLogger=INFO, stdout

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

Colóquelo en src / main / resources /

Después de eso, use estas 2 dependencias:

<dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.5</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.5</version>
        </dependency>

Es necesario agregar esta dependencia final al archivo POM:

<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.1.5.RELEASE</version>
        </dependency>
nosequeweaponer
fuente
0

Considere el argumento log4j JVM Dlog4j.configuration

En general:

Agregue el argumento JVM que señala el archivo de configuración log4j. La sintaxis es la siguiente:

java [ options ] -jar file.jar [ arguments ]

Una muestra de una línea de comando real es como la siguiente:

java -Dlog4j.configuration=conf/log4j.xml -jar myJarFile.jar myArg1 myArg2

Para usuarios de IntelliJ IDE:

1.Run/Debug Configurations
2.Edit configurations...
3.VM options
4.Enter the same value also starting with "-D"

Consejos:

1.Los usuarios de Eclipse IDE encontrarán un enfoque equivalente

2.Para el editor de configuración de ejecución / depuración, es muy probable que, al comienzo de los tiempos, su archivo ejecutable particular no esté allí. Dependiendo del tamaño del proyecto en el que está trabajando actualmente, puede ser desagradable navegar por los directorios para encontrarlo. Es menos complicado si solo ejecuta / ejecuta el archivo (haga clic en reproducir) una vez antes de proceder a ejecutar / depurar la configuración sin importar el resultado de la ejecución.

3. Preste atención a su directorio de trabajo, rutas relativas y classpath.

Farlon Souto
fuente
0

Para mí, la razón era aparentemente diferente y el mensaje de error era engañoso.

Con solo esto en mi build.gradle, se quejaría de que faltaba slf4j al comienzo del registro, pero aún registra las cosas, aunque en un formato deficiente:

    compile 'log4j:log4j:1.2.17'

Agregar esa dependencia causaría el mensaje de error discutido "no se encontraron apéndices" para mí, a pesar de haberlos definido en src/main/java/log4j.properties:

    compile 'log4j:log4j:1.2.17'
    compile 'org.slf4j:slf4j-log4j12:1.7.25'

Finalmente, agregar la siguiente dependencia (que solo adiviné al copiarlo de otro proyecto) resolvió el problema:

    compile 'log4j:log4j:1.2.17'
    compile 'org.slf4j:slf4j-log4j12:1.7.25'
    compile 'commons-logging:commons-logging:1.2'

No sé por qué, pero con esto funciona. ¿Alguna idea sobre eso?

Kira Resari
fuente