JavaRush /Blog Java /Random-ES /Conectamos el registro a nuestro proyecto JavaRush (slf4f...
Дмитрий Яковенко
Nivel 35
Москва

Conectamos el registro a nuestro proyecto JavaRush (slf4f y log4j)

Publicado en el grupo Random-ES
Puedes leer cómo conectar Maven a tu proyecto JavaRush en este artículo mío . Lo siguiente supone que usted sabe cómo hacer esto. Si queremos usar slf4j, entonces necesitamos una dependencia:
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.30</version>
</dependency>
Después de esto hacemos:
public static void main(String[] args) throws IOException {
    Logger logger = LoggerFactory.getLogger(Solution.class);
    logger.info("hello world!");
}
Y obtenemos el error:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Lo cual es generalmente lógico. slf4j es un contenedor, pero ¿en qué lo envolvimos? ¿Nada? Bueno, tenemos un error. Puede ajustarlo a uno de los siguientes: log4j, util.logging, NOP, System.err, JCL, logback. Más detalles en las instrucciones originales . Veamos el ejemplo de log4j y System.err: 1) Comencemos con algo simple, con System.err . Para hacer esto, agregue este (slf4j-simple) a la dependencia anterior (slf4j-api).
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.7.30</version>
</dependency>
Tomamos las mismas versiones, al 10 de mayo de 2021 es la 1.7.30. Si toma dependencias de https://mvnrepository.com/ , no olvide eliminar
<scope>test</scope>
De lo contrario, sus registros sólo funcionarán en las pruebas. 2) Ahora intentemos configurar log4j , para esto necesitamos agregar 2 dependencias: el propio log4j y una capa entre slf4j y log4j (slf4j-log4j12). Se parece a esto:
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.30</version>
</dependency>
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>
Está claro que necesitamos eliminar (slf4j-simple) para que slf4j no se confunda acerca de con qué registrador debería funcionar. Y deja (slf4j-api), ya que este es slf4j. Respecto a las 2 dependencias agregadas. log4j estamos agregando el antiguo (de mayo de 2012, no sé por qué, puedes experimentar con otros). Su versión es 1.2.17. Para que slf4j funcione con él, necesita una capa adecuada: slf4j-log4j12, donde los últimos caracteres (12) significan la versión de log4j. En este caso, la versión de slf4j-api y slf4j-log4j12 debería ser 1.7.30, la última versión estable en este momento. Después de haber conectado las dependencias y actualizado el proyecto Maven. Para que log4j funcione, necesita 2 cosas más: 1) Configurar un archivo de configuración. Leemos, seleccionamos, copiamos. 2) Lea la configuración de log4j antes de trabajar:
PropertyConfigurator.configure("d:\\Java\\JavaRushTasks\\4.JavaCollections\\log4j.properties");
Bueno, o donde tienes el archivo. Si desea ver todos los registros, no olvide configurar el nivel de registro en TODOS. Agregamos al currículum: log4j y slf4j. ¡Eres guapisima! Si te ayudó, ¡me gusta, suscríbete, campana!)))
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION