Журналы SLFJ не генерируются - PullRequest
1 голос
/ 29 апреля 2020

Я новичок в slf4j, в своем проекте я использую его для получения журналов.

Я использую InteliJ IDE.

Вот мой код


package com.sample;


import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

public class TestMainclass 

{

    static Logger logger = LoggerFactory.getLogger(TestMainclass.class);

    public static void main(String[] args) {

        System.out.println("before");

        logger.debug("hello");

        logger.info("hello");

        System.out.println("after");

        }

}

здесь есть зависимость

    testCompile group: 'org.slf4j', name: 'slf4j-jdk14', version: '1.7.30'

Все нормально работает в обычной установке, но когда я собираю свой код и запускаю этот jar с junit-platform-console-standalone-1.5.2.jar, появляется ошибка ниже :

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.

Ответы [ 2 ]

0 голосов
/ 03 мая 2020

Идея проекта SLF4J заключалась в создании общего API для многих каркасов журналов, существующих в мире Java.

Так что это просто дает вам интерфейсы с методами для вызова, чтобы ваш код мог компилироваться и запустить, но не каркас журнала, которому slf4j может затем делегировать работу. Обычно это делается при наличии как slf4j, так и выбранной jar Framework журнала на classspath во время выполнения и (при необходимости) моста для их соединения. Это подробно описано в документации по slf4j.

Вы выбрали slf4j-jdk14, который использует каркас журналирования, встроенный в среду выполнения Java, но, очевидно, он не присутствует в пути к классам при запуске junit, вызывая ошибка.

Я бы посоветовал взглянуть на путь к классам в тот момент, когда вы видите ошибку, чтобы увидеть, какие там находятся файлы slf4j.

0 голосов
/ 01 мая 2020

SLF4J - это API регистрации. Это требует реализации. Есть несколько вариантов; Log4j 2, Logback, log4j 1.x (не рекомендуется) или java утилита регистрации (не рекомендуется). Мое личное предпочтение - это log4j 2, и в этом случае вам понадобятся 3 jar - log4j-slf4j-impl, log4j-api и log4j-core. Все они будут использовать группу org. apache .logging.log4j, а последняя версия - 2.13.2.

...