springbootでログ情報をcatalina.baseに格納して過程解析します。


この文章は主にspringbootでログ情報をcatalina.baseに記憶している過程解析を紹介しています。ここではサンプルコードで紹介した非常に詳細で、皆さんの学習や仕事に対して一定の参考学習価値を持っています。必要な友達は参考にしてください。

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">
  <!--      -->
  <property name="PROJECT_NAME" value="springBootTemplate" />

  <!--               LogBack           -->
  <property name="LOG_HOME" value="${catalina.base}/logs" />

  <!--       -->
  <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <withJansi>true</withJansi>
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
      <!--     :%d    ,%thread     ,%-5level:      5     %msg:    ,%n    -->
      <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] %highlight([%-5level] %logger{50} - %msg%n)</pattern>
      <charset>UTF-8</charset>
    </encoder>
  </appender>

  <!--          -->
  <appender name="SYSTEM_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <!--    ,   ERROR      -->
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
      <level>ERROR</level>
      <onMatch>ACCEPT</onMatch>
      <onMismatch>DENY</onMismatch>
    </filter>
    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
      <!--          -->
      <FileNamePattern>${LOG_HOME}/${PROJECT_NAME}.system_error.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
      <!--        -->
      <MaxHistory>15</MaxHistory>
      <!--         -->
      <MaxFileSize>10MB</MaxFileSize>
    </rollingPolicy>

    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
      <!--     :%d    ,%thread     ,%-5level:      5     %msg:    ,%n    -->
      <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] [%-5level] %logger{50} - %msg%n</pattern>
      <charset>UTF-8</charset>
    </encoder>
  </appender>
  <logger name="system_error" additivity="true">
    <appender-ref ref="SYSTEM_FILE"/>
  </logger>

  <!--          ,           -->
  <appender name="MY_INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <!--    ,   ERROR      -->
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
      <level>INFO</level>
      <onMatch>ACCEPT</onMatch>
      <onMismatch>DENY</onMismatch>
    </filter>
    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
      <!--          -->
      <FileNamePattern>${LOG_HOME}/${PROJECT_NAME}.my_info.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
      <!--        -->
      <MaxHistory>15</MaxHistory>
      <!--         -->
      <MaxFileSize>10MB</MaxFileSize>
    </rollingPolicy>

    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
      <!--     :%d    ,%thread     ,%-5level:      5     %msg:    ,%n    -->
      <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] [%-5level] %logger{50} - %msg%n</pattern>
      <charset>UTF-8</charset>
    </encoder>
  </appender>
  <logger name="my_info" additivity="true">
    <appender-ref ref="MY_INFO_FILE"/>
  </logger>

  <!--            -->
  <springProfile name="dev">
    <root level="INFO">
      <appender-ref ref="CONSOLE" />
      <appender-ref ref="SYSTEM_FILE" />
    </root>
  </springProfile>

  <!--            -->
  <springProfile name="prod">
    <root level="INFO">
      <appender-ref ref="SYSTEM_FILE" />
    </root>
  </springProfile>
</configuration>
Spring Bootプロジェクトでは公式文書で説明していますが、デフォルトはすでにいくつかのログフレームに依存しています。その中で推奨されているのがLogbackです。Spring Bootは既にLogbackに依存していますので、手動で依存を追加する必要はありません。
どのように設定しますか
1、resourceディレクトリの下にlogback-spring.xmlを新規作成します。
あなたの名前がlogback-spring.xmlであればSpring Bootは自動的に認識して読み取りますので、他の設定は必要ありません。
プロファイルの詳細は以下の通りです。
同じlogbackここのプロファイルも、devを使用するとdev下の構成が読み取られます。prodを使用するとprod下の構成が使用されます。
つまりプロジェクトにオンラインが必要な時には、springBootの配置ファイルを修正すればいいです。logbackを修正する必要がなく、生産環境と開発環境の下で異なるログレベルを印刷することができます。
コンソールで印刷した情報が処理されて表示される色に違いがあり、問題が発見されやすいです。
そしてログファイルの分類です。
ツールクラスによって印刷ログが分離されます。
必要な重要なログ情報をmy_に印刷します。infoファイルには、重要なエラー情報がsystemに保存されています。errorファイルにあります。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。