Heim > Java > javaLernprogramm > Wie Springboot Logback verwendet, um die Protokollkonfiguration zu implementieren

Wie Springboot Logback verwendet, um die Protokollkonfiguration zu implementieren

WBOY
Freigeben: 2023-05-16 09:07:05
nach vorne
1481 Leute haben es durchsucht

Übersicht

Standardmäßig verwendet SpringBoot intern Logback als Framework für die Systemprotokollimplementierung, das Protokolle an die Konsole ausgibt und nicht in Protokolldateien schreibt. Bei Konfiguration in application.properties oder application.yml können nur einfache Szenarien, Speicherpfade, Protokollformate usw. konfiguriert werden. Komplexe Szenarien (Unterscheidung zwischen Info- und Fehlerprotokollen, tägliches Erstellen einer Protokolldatei usw.) können nicht erfüllt werden, daher können Sie nur die Konfigurationsdatei logback-spring.xml oder logback.xml anpassen.

Detaillierte Erklärung der Logback-Konfiguration

Lassen Sie uns zunächst das Logback verstehen.

Logback ist hauptsächlich in drei Module unterteilt:

  • logback-core: Es ist das Basismodul der anderen beiden Module

  • logback-classic: Es ist eine Erweiterung des Kernmoduls, gleichbedeutend mit einer verbesserten Version von log4j. Das klassische Modul implementiert die Slf4j-API, sodass es problemlos direkt mit anderen Protokoll-Frameworks ausgetauscht werden kann.

  • logback-access: Integrieren Sie es in den Servlet-Container, um die HTTP-Zugriffsprotokollfunktion bereitzustellen. KLogBack-Konfiguration 1.Application .properties Ich bin darauf gestoßen Ein seltsames Problem. Nachdem die Protokollierung gemäß der obigen Konfiguration konfiguriert wurde, können die meisten Projekte normal ausgeführt und Protokolle in Dateien gespeichert werden. Bei einem Projekt wird jedoch beim Start ein Fehler gemeldet.

  • Das Protokollierungssystem konnte nicht mit der Konfiguration von „classpath:logback-spring.xml“ initialisiert werden.
    java.lang.IllegalStateException: Die Protokollierung der Protokollierung konnte nicht von classpath:logback-spring.xml
        bei org.springframework.boot.logging.logback initialisiert werden .LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:168)
        bei org.springframework.boot.logging.AbstractLoggingSystem.initializeWithSpecificConfig(AbstractLoggingSystem.java:66)
        bei org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:57). )
        bei org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java:132)
        bei org.springframework.boot.context.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:316)
        bei org.springframework .boot.context.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:282)
        bei org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:240)
        bei org.springframework.boot.context.logging .LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:216)
        unter org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:176)
        unter Listener(SimpleApplicationEventMulticaster.java:169 )
        bei org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143)
        bei org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:131)
        bei.org.springframe work.boot.context .event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:85)
        unter org.springframework.boot.SpringApplicationRunListeners.lambda$environmentPrepared$2(SpringApplicationRunListeners.java:66)
        unter .java:1257)
        bei org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:120)
        bei org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:114)
        bei .boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners. java:65)
        bei org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:339)
        bei org.springframework.boot.SpringApplication.run(SpringApplication.java:297)
        bei org.springframework.boot.SpringApplication. run(SpringApplication.java:1312)
        bei org.springframework.boot.SpringApplication.run(SpringApplication.java:1301)
        bei cn.piesat.ScanningApplication.main(ScanningApplication.java:18)
    Verursacht durch: ch.qos. logback.core.joran.spi.JoranException: Parser-Konfigurationsfehler ist aufgetreten
        bei ch.qos.logback.core.joran.event.SaxEventRecorder.buildSaxParser(SaxEventRecorder.java:89)
        bei ch.qos.logback.core.joran. event.SaxEventRecorder.recordEvents(SaxEventRecorder.java:57)
        bei ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:151)
        bei ch.qos.logback.core.joran.GenericConfigurator.doConfigure( GenericConfigurator.java:110)
        bei ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:53)
        bei org.springframework.boot.logging.logback.LogbackLoggingSystem.configureByResourceUrl(LogbackLoggingSystem.java:188)
        bei org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:165)
        ... 22 weitere
    Verursacht durch: org.xml.sax.SAXNotSupportedException: Funktion: http://xml.org/ sax/features/external-general-entities
        bei org.apache.crimson.parser.XMLReaderImpl.setFeature(XMLReaderImpl.java:211)
        bei org.apache.crimson.jaxp.SAXParserImpl.setFeatures(SAXParserImpl.java:143)
    bei org.apache.crimson.jaxp.SAXParserImpl.(SAXParserImpl.java:126)
        bei org.apache.crimson.jaxp.SAXParserFactoryImpl.newSAXParserImpl(SAXParserFactoryImpl.java:113)
        bei Sohn. jaxp.SAXParserFactoryImpl.setFeature(SAXParserFactoryImpl.java:141)
        at ch.qos.logback.core.joran.event.SaxEventRecorder.buildSaxParser(SaxEventRecorder.java:82)
        ... 28 more
    Disconnected from the target VM, address: '127.0.0.1:64222', transport: 'socket'

    Process finished with exit code 1

    可能是由于jar包冲突,在pom文件中单独引入logback-core的依赖后,问题解决。

    <!-- logback 日志 -->
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-core</artifactId>
        <version>1.1.7</version>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.1.7</version>
        <exclusions>
            <exclusion>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-core</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie Springboot Logback verwendet, um die Protokollkonfiguration zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage