Donnerstag, Mai 28, 2020

Wie konfigurieren Sie die Protokollierung mit hibernate log4j2.xml?

Ich habe vor kurzem wechselte zu Apache log4j2, und kann immer noch nicht einen Weg finden, konfigurieren Sie die Protokollierung mit hibernate log4j2.xml.

Weil ich kann nicht einen Weg finden, um dieses problem, das ich noch verwenden log4j.Eigenschaften-Datei, die explizit für den Ruhezustand. Dies ist nicht die beste Lösung, da meine log4j2.xml verwendet die JPA-appender (schreibt logs in db). Ich möchte nicht zu schreiben separate Logik für hibernate.

Gibt es eine Möglichkeit zu konfigurieren, hibernate logging mit log4j2?

3 Kommentare

  1. 5

    Wie vorgeschlagen in
    https://issues.apache.org/jira/browse/LOG4J2-172
    Sie können hinzufügen, die system-Eigenschaft zu erzwingen, hibernate slf4j verwenden

    -Dorg.jboss.die Protokollierung.provider=slf4j

    auch log4j-slf4j-impl Hinzugefügt werden soll classpath

    Meine eigene Lösung:
    mit Spring können Sie Platz
    org.jboss.die Protokollierung.provider=slf4j
    in der property-Datei

    (envConfigLocation ist die Datei-url)

    <bean id="propertyConfigurer" class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
       <property name="location" ref="envConfigLocation" />
       <property name="order" value="1"/>
    </bean>
  2. 3

    Fand ich eine Antwort auf diese Frage an: Wie umleiten alle Protokolle von hibernate und spring auf log4j2?

    Grundsätzlich log4j2 funktioniert nicht mit Hibernate, so dass Sie verwenden log4j. Aber Sie immer noch mit Ihren log4j2-Konfiguration. Sie müssen die folgenden Abhängigkeiten und dann die Magie passiert im hintergrund.

    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-1.2-api</artifactId>
        <version>2.1</version>
    </dependency>
    <dependency>
    <!--HIBERNATE LOGGER (log4j)-->
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.7.6</version>
    </dependency>
  3. 0

    Ist es möglich, Anrufe auf die log4j-1.x-API log4j-2.0-Implementierung. Die FAQ über die Gläser zu gehören, erklärt, wie dies zu tun. Sie wahrscheinlich benötigen, um entfernen Sie die alte log4j-1.x-Glas aus dem classpath, wenn Sie dies tun.

    • Ich folgte den Anweisungen in der FAQ, aber es hat nicht geholfen. Es muss noch etwas anderes erforderlich – wahrscheinlich-Eigenschaft festlegen.

Kostenlose Online-Tests