デフォルトでは、SpringBoot は内部でシステム ログ実装のフレームワークとして logback を使用します。ログはコンソールに出力され、ログ ファイルには書き込まれません。 application.properties または application.yml で構成されている場合、単純なシナリオ、保存パス、ログ形式などのみを構成できます。複雑なシナリオ (情報ログとエラー ログの区別、毎日のログ ファイルの生成など) には対応できないため、構成ファイル logback-spring.xml または logback.xml のみをカスタマイズできます。
まず、ログバックについて理解しましょう。
logback は主に 3 つのモジュールに分かれています:
logback-core: 他の 2 つのモジュールの基本モジュールです
# logback-classic: これはコア モジュールの拡張機能であり、log4j の改良版に相当します。クラシック モジュールは Slf4j API を実装しているため、他のログ フレームワークと直接簡単に切り替えることができます。
logback-access: サーブレット コンテナと統合して http アクセス ログ機能を提供します。
1.application .properties
ログ出力情報の設定
logging。 config=classpath:logback-spring.xml
##2.logback-spring.xml異常な状況何か奇妙な問題が発生しましたそれは、上記の構成に従ってログバックを構成した後、ほとんどのプロジェクトは正常に実行でき、ログをファイルに保存できますが、1 つのプロジェクトが開始時にエラーを報告するということです。<?mybatis version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="60 seconds" debug="false"> <contextName>logback</contextName> <!--输出到控制台--> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <!-- <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>ERROR</level> </filter>--> <encoder> <pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 日志文件会滚动 --> <!-- 文件路径 --> <file>./logs/gf_scanning.log</file><!-- 当前的日志文件存放路径 --> <!-- 日志滚动策略 --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 历史日志文件的存放路径和名称 --> <fileNamePattern>./logs/gf_scanning.%d{yyyy-MM-dd}.%i.log</fileNamePattern> <!-- 日志文件最大的保存历史 数量--> <maxHistory>30</maxHistory> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>10MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> <encoder> <pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern> <!-- 日志文件中日志的格式 --> </encoder> </appender> <root level="info"> <appender-ref ref="console"/> <appender-ref ref="file"/> </root> </configuration>ログイン後にコピー
java.lang.IllegalStateException: クラスパス:logback-spring.xml からログバック ロギングを初期化できませんでした ... 原因: ch.qos.logback.core.joran.spi.JoranException: パーサー構成エラーが発生しました
「classpath:logback-spring.xml」の構成を使用してロギング システムを初期化できませんでした
java.lang.IllegalStateException:組織で classpath:logback-spring.xml
からの Logback ロギングを初期化できませんでした.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:168)
org.springframework.boot.logging.AbstractLoggingSystem.initializeWithSpecificConfig(AbstractLoggingSystem.java:66)
org.springframework.boot .logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:57)
org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java:132)
org.springframework.boot.context.logging で.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:316)
org.springframework.boot.context.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:282)
org.springframework.boot.context.logging.LoggingApplicationListener .onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:240)
org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:216)
org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster .java:176)
org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:169)
org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143)
org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:131)で
org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:85)で
orgで.springframework.boot.SpringApplicationRunListeners.lambda$environmentPrepared$2(SpringApplicationRunListeners.java:66)
java.util.ArrayList.forEach(ArrayList.java:1257)
org.springframework.boot.SpringApplicationRunListeners.doWithListeners( SpringApplicationRunListeners.java:120)
org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:114)
org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:65)
でorg.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:339)
org.springframework.boot.SpringApplication.run(SpringApplication.java:297)
at org.springframework.boot.SpringApplication.run( SpringApplication.java:1312)
org.springframework.boot.SpringApplication.run(SpringApplication.java:1301)
cn.piesat.ScanningApplication.main(ScanningApplication.java:18)
原因: ch.qos.logback.core.joran.spi.JoranException: パーサー構成エラーが発生しました
ch.qos.logback.core.joran.event.SaxEventRecorder.buildSaxParser(SaxEventRecorder.java:89)
ch でqos.logback.core.joran.event.SaxEventRecorder.recordEvents(SaxEventRecorder.java:57)
ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:151)
ch. qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:110)
ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:53)
org.springframework で。 boot.logging.logback.LogbackLoggingSystem.configureByResourceUrl(LogbackLoggingSystem.java:188)
org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:165)
... 22 more
原因: org.xml.sax.SAXNotSupportedException: 機能: http://xml.org/sax/features/external-general-entities
org.apache.crimson.parser.XMLReaderImpl.setFeature(XMLReaderImpl.java) :211)
org.apache.crimson.jaxp.SAXParserImpl.setFunctions(SAXParserImpl.java:143)
org.apache.crimson.jaxp.SAXParserImpl.(SAXParserImpl.java:126)
org.apache.crimson.jaxp.SAXParserFactoryImpl.newSAXParserImpl(SAXParserFactoryImpl.java:113)
org.apache.crimson.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>
以上がSpringboot が Logback を使用してログ構成を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。