Logback configurazione Maven

di il
3 risposte

Logback configurazione Maven

Salve a tutti, sto cercando di configurare la libreria logback, ho settato il file pom.xml e  logback.xml ma ancora non sembra funzionare.. allego i contenuti dei file .xml e classe main così da riceve una vostra opinione.. ho provato già un sacco di forum ma non riesco propri a farlo andare.. Forse ho sbagliato la configurazione del classpath

logback.xml

<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
    </appender>
    <root level="debug">
        <appender-ref ref="STDOUT" />
    </root>
</configuration>

pom.xml

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.riccardo.esempioLog</groupId>
<artifactId>Task_log</artifactId>
<version>0.0.1-SNAPSHOT</version>

<name>Task_log</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.postgresql/postgresql -->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.6.0</version>
</dependency>


<!-- https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc8 -->
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>21.9.0.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.4.6</version>
</dependency>

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

<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>2.0.7</version>
</dependency>

</dependencies>

<build>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
</plugin>

<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
<!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
<plugin>
<artifactId>maven-site-plugin</artifactId>
<version>3.7.1</version>
</plugin>
<plugin>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.0.0</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
package com.riccardo.esempioLog.Task_log;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Example {

private static final Logger logger = LoggerFactory.getLogger(Example.class);

public static void main(String[] args) throws Exception {
logger.debug("lod di debug", Example.class.getSimpleName());
}
}

3 Risposte

  • Re: Logback configurazione Maven

    Purtroppo stai facendo molta molta confusione. Innanzitutto non ti serve il slf4j-simple. Questo è un “backend” semplice di SLF4J che non fa altro che scrivere gli eventi di log su System.err (ovvero non è una libreria di logging).

    Per usare logback, serve (di norma) solo:

            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>1.4.6</version>
            </dependency>

    Il logback-classic “tira” già dentro automaticamente il logback-core e slf4j-api. E attenzione: il backend per SLF4J è nel classic, non nel core!

    Ma c'è dell'altro. Hai usato:

    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>

    quindi stai usando Java 7, giusto? Male, perché logback 1.4.x richiede almeno Java 11. Quindi o aggiorni la versione di Java, oppure usi una versione più vecchia di logback (1.2.x) che richiede almeno Java 6 (e attenzione, usa SLF4J 1.x, non la 2.x).

    P.S. comunque non ha nemmeno molto senso, generalmente, esplicitare tutte le versioni di tutti i plugin standard es. mave-site-plugin, mave-clean-plugin ecc… Si mettono versioni esplicite solo quando si devono usare feature particolari che non ci sono nella versione “standard” usata da Maven.

  • Re: Logback configurazione Maven

    Grazie mille, ho aggiunto le versioni di ogni cosa piano piano nel tentivo di sbloccare qualcosa, purtroppo anche sul sito ufficiale non si capisce bene come vanno usare queste librerie.. diciamo che sono neofita in campo Maven cosi' come in Java.. sto ancora imparando.. provero' a fare come mi hai suggerito! 

  • Re: Logback configurazione Maven

    01/04/2023 - andbin ha scritto:


    Purtroppo stai facendo molta molta confusione. Innanzitutto non ti serve il slf4j-simple. Questo è un “backend” semplice di SLF4J che non fa altro che scrivere gli eventi di log su System.err (ovvero non è una libreria di logging).

    Per usare logback, serve (di norma) solo:

            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>1.4.6</version>
            </dependency>

    Il logback-classic “tira” già dentro automaticamente il logback-core e slf4j-api. E attenzione: il backend per SLF4J è nel classic, non nel core!

    Ma c'è dell'altro. Hai usato:

    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>

    quindi stai usando Java 7, giusto? Male, perché logback 1.4.x richiede almeno Java 11. Quindi o aggiorni la versione di Java, oppure usi una versione più vecchia di logback (1.2.x) che richiede almeno Java 6 (e attenzione, usa SLF4J 1.x, non la 2.x).

    P.S. comunque non ha nemmeno molto senso, generalmente, esplicitare tutte le versioni di tutti i plugin standard es. mave-site-plugin, mave-clean-plugin ecc… Si mettono versioni esplicite solo quando si devono usare feature particolari che non ci sono nella versione “standard” usata da Maven.

    funziona tutto ora GRAZIE MILLE DAVVERO erano giorni che provavo invano a risolvere ahahah, a presto!

Devi accedere o registrarti per scrivere nel forum
3 risposte