ホームページ  >  記事  >  Java  >  springboot logback ログ フレームワークを構成する方法

springboot logback ログ フレームワークを構成する方法

WBOY
WBOY転載
2023-05-11 10:46:191120ブラウズ

Logback は、アプリケーション構成ファイルと logback-spring.xml を通じてログを構成できます。通常の状況では、グローバル構成ファイル application.yml または構成のプロパティを使用するだけで十分ですが、ログ出力要件が特に複雑で個人用である場合は、logback-spring.xml 構成メソッドの使用を検討できます。

1. ログ設定を実装するためのアプリケーション設定ファイル

application.properties(yml) ファイルでログを設定できます

logging:
  level:
    root: info
    com.zimug.boot.launch.controller: debug
  file:
    path: D:\logs
    name: D:\logs\boot-launch.log
    max-size: 10MB
    max-history: 10
  pattern:
    console: '%red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{10}) - %cyan(%msg%n)'
    file: '%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger : %msg%n'
  • logging.level.root=infoシステム全体のデフォルトのログ レベルが info であることを指定し、ログ レベルが統一されます

  • #logging.level.com。 zimug.boot.launch.controller=debug は、特定のパッケージのログ レベルがデバッグであり、ログ レベルが個人用であることを指定します。優先順位の観点から見ると、パーソナライズされた構成は統合された構成よりも優れています。

  • logging.file.path指定されていない場合は、指定されたディレクトリにログを出力します。

  • logging .file.name、ログ ファイルのデフォルト名は spring.log です。 logging.file.name を構成すると、logging.file.path 構成は無効になります。

  • 設定に関係なく、Spring Boot はログ ファイルを日ごとに自動的に分割します。つまり、新しいログ ファイルは毎日自動的に生成され、前のログ ファイルは自動的に生成されます。自動的に GZ 圧縮パッケージにフォーマットされます。 # ログ ファイル サイズ

  • 設定可能 logging.file.max-size=10MB各分割ログ ファイルの最大容量を超えます。このサイズを超えてもログは引き続き分割されます。

  • ログの保持期間は logging.file.max-history=10 (日単位) で設定できます

  • #logging.pattern.fileファイルに出力されるログの形式

  • logging.pattern.consoleコンソール出力ログの形式コンソールのデバッグ中の表示効果がより明確になり、ログに色が追加されます。赤、緑など。

ログ形式のプレースホルダー

この図で、プレースホルダーと logging.pattern.console の関係を見てみましょう。形式設定間

springboot logback日志框架怎么配置

  • %d{HH:mm:ss.SSS}: ログ出力時間(赤色)

  • %thread: ログを出力するプロセスの名前。Web アプリケーションや非同期タスク処理で非常に役立ちます (緑色)

  • %-5level: ログ レベル、および5 文字を使用して左揃えにします (青で強調表示)

  • %logger: ログ出力クラスの名前 (boldMagenta 太字マゼンタ)

  • %msg: ログ メッセージ (シアン、青、緑)

  • %n: プラットフォームの改行文字

2. logback-spring .xml を使用します。ログ設定を実装します

2.1. 要件

一般的には、グローバル設定ファイル application.yml または設定用のプロパティを使用するだけで十分です。ログ出力要件が特に複雑な場合は、使用を検討できます。 logback-spring.xml の設定方法。

Spring Boot は、独自のログバックを使用してログを出力し、複数の環境で出力します。

  • 運用環境は、コンソールとファイルに出力します。 1 日あたりのファイル数、30 日間保持されます。

  • 開発環境はコンソールに出力し、SQL (mybatis) 出力を出力しますが、運用環境はこの情報を出力しません

  • テスト 環境はコンソールにのみ出力されます。ファイルに出力しない

#Mybatis SQL を出力するには、SQL を出力するために Mybatis が使用するパッケージのログ レベルを DEBUG に調整するだけです。

2.2. 要件の実装

logback は Spring Boot のデフォルトのロギング フレームワークであるため、Maven 依存関係を導入する必要はなく、logback-spring.xml をアップロードして以下に配置するだけです。リソース

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!--引入默认的一些设置-->
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
    <!--web信息-->
    <logger name="org.springframework.web" level="info"/>
    <!--写入日志到控制台的appender,用默认的,但是要去掉charset,否则windows下tomcat下乱码-->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
        </encoder>
    </appender>
    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
    <property name="LOG_PATH" value="D:/logs/boot-launch"/>
    <!--写入日志到文件的appender-->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志文件输出的文件名,每天一个文件-->
            <FileNamePattern>${LOG_PATH}.%d{yyyy-MM-dd}.log</FileNamePattern>
            <!--日志文件保留天数-->
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
        <!--日志文件最大的大小-->
        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <MaxFileSize>10MB</MaxFileSize>
        </triggeringPolicy>
    </appender>
    <!--异步写日志到文件-->
    <appender name="asyncFileAppender" class="ch.qos.logback.classic.AsyncAppender">
        <discardingThreshold>0</discardingThreshold>
        <queueSize>500</queueSize>
        <appender-ref ref="FILE"/>
    </appender>
    <!--生产环境:打印控制台和输出到文件-->
    <springProfile name="prod">
        <root level="info">
            <appender-ref ref="CONSOLE"/>
            <appender-ref ref="asyncFileAppender"/>
        </root>
    </springProfile>
    <!--开发环境:打印控制台-->
    <springProfile name="dev">
        <!-- 打印sql -->
        <logger name="com.zimug.boot.launch" level="DEBUG"/>
        <root level="DEBUG">
            <appender-ref ref="CONSOLE"/>
        </root>
    </springProfile>
    <!--测试环境:打印控制台-->
    <springProfile name="test">
        <root level="info">
            <appender-ref ref="CONSOLE"/>
        </root>
    </springProfile>
</configuration>

非同期ログ構成:

    非同期ログ キューサイズ デフォルト値は、非同期ログ キューの容量である 256 です。
  • discardingThreshold: 非同期ログ キューの残りの容量がこのしきい値未満の場合、TRACE、DEBUG、または INFO レベルのログは破棄されます。ログを破棄したくない (つまり、完全に保存したくない) 場合は、0 に設定できます。ただし、キューがいっぱいになると、ノンブロッキング非同期ログはブロッキング同期ログになります。したがって、高い同時実行性と低遅延の要件を持つシステムでは、重要でないログに対して、discardingThreshold 廃棄ポリシーを 0 より大きい値で設定できます。
  • 2.3. テスト

上記の設定が完了したら、次のコードを使用して、セクション 2.1 で提案された要件を満たしているかどうかをテストできます。

rree

以上がspringboot logback ログ フレームワークを構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。