JavaRush /Blogue Java /Random-PT /Conectamos o log ao nosso projeto JavaRush (slf4f e log4j...
Дмитрий Яковенко
Nível 35
Москва

Conectamos o log ao nosso projeto JavaRush (slf4f e log4j)

Publicado no grupo Random-PT
Você pode ler como conectar o Maven ao seu projeto JavaRush neste meu artigo . O seguinte pressupõe que você saiba como fazer isso. Se quisermos usar slf4j, precisaremos de uma dependência:
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.30</version>
</dependency>
Depois disso fazemos:
public static void main(String[] args) throws IOException {
    Logger logger = LoggerFactory.getLogger(Solution.class);
    logger.info("hello world!");
}
E obtemos o erro:
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.
O que geralmente é lógico. slf4j é um wrapper, mas o que envolvemos? Nada? Bem, tivemos um erro. Você pode envolvê-lo em um dos seguintes: log4j, util.logging, NOP, System.err, JCL, logback. Mais detalhes nas instruções originais . Vejamos o exemplo de log4j e System.err: 1) Vamos começar com algo simples, com System.err . Para fazer isso, adicione este (slf4j-simple) à dependência anterior (slf4j-api).
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.7.30</version>
</dependency>
Tomamos as mesmas versões, em 10 de maio de 2021 é 1.7.30. Se você pegar dependências de https://mvnrepository.com/ , não se esqueça de remover
<scope>test</scope>
Caso contrário, seus logs funcionarão apenas em testes. 2) Agora vamos tentar configurar log4j , para isso precisamos adicionar 2 dependências: o próprio log4j e uma camada entre slf4j e log4j (slf4j-log4j12). Se parece com isso:
<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>
É claro que precisamos remover (slf4j-simple) para que o slf4j não fique confuso sobre com qual logger ele deve funcionar. E saia (slf4j-api), já que este é slf4j. Em relação às 2 dependências adicionadas. log4j estamos adicionando o antigo (a partir de maio de 2012, não sei por que, você pode experimentar com outros). Sua versão é 1.2.17. Para que o slf4j funcione com ele, você precisa de uma camada apropriada - slf4j-log4j12, onde os últimos caracteres (12) significam a versão do log4j. Neste caso, a versão do slf4j-api e do slf4j-log4j12 deve ser 1.7.30 - a mais recente estável no momento. Depois de conectar as dependências e atualizar o projeto Maven. Para que o log4j funcione, você precisa de mais duas coisas: 1) Configurar um arquivo de configuração. Lemos, selecionamos, copiamos. 2) Leia a configuração do log4j antes de trabalhar:
PropertyConfigurator.configure("d:\\Java\\JavaRushTasks\\4.JavaCollections\\log4j.properties");
Bem, ou onde você tem o arquivo. Se você quiser ver todos os logs, não esqueça de definir o nível de log como TODOS. Adicionamos ao currículo - log4j & slf4j. Você é maravilhosa! Se ajudou - curta, inscreva-se, sininho!)))
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION