この記事では、ログバック ログの非同期出力方法 (コード例) を紹介します。必要な方は参考にしていただければ幸いです。
最近問題が発生しました。顧客のサーバー プログラムのリクエストへの応答が時折遅すぎることがあり、ログを確認したところ、RSA 署名検証コードが 20 秒を超えて実行されていたことが判明しました。一方、通常の状況では、必要な時間は 16 ミリ秒 だけです。
RSA 証明書はサーバーの起動時に読み込まれるため、ファイルの読み取りが遅いという問題はありません。これらのコード行を確認した後、最も疑わしいのは、logback ログ出力のコードです。 運用ログの構成を確認しました。logback.xml の構成では、今月のログ ファイルがすべて同じフォルダーに含まれています。 2019 年 1 月の文書。各ファイルは*.log.zip というサフィックスと 10MB のサイズで構成されます。これは、10MB がサイズ区切りのファイルであることを意味します。ログ印刷クラスは RollingFileAppender で構成されます。
2019 年 1 月 30 日、2019 年 1 月のフォルダーの下に 5,000 を超えるログ ファイルが生成され、1 日あたり平均 167 のログ ファイルが生成されました。 つまり、ログ ファイルが多すぎてインデックス ファイルの時間が長すぎるため、コードの実行が遅くなっていると考えられます。つまり、これを疑いたい場合は、前提条件があります。 : ログの印刷は同期であり、印刷ログが呼び出されます。 コード行が実行されてファイルに書き込まれた後、ビジネス コードは引き続き実行されます。 何人かの同僚に尋ねたところ、ログの印刷は非同期で実行されると全員が言いました。同期だと答えたのは 1 人の友人だけでした。ログの印刷とファイルの書き込みには時間がかかり、ログ フレームワークはファイルを同期的に書き込むべきではないと誰もが考えています。ただし、実際には、非同期印刷が構成されていない場合、ログは同期的に印刷されます。 ブレークポイントのフォローアップ コードにより、ログがファイルに同期的に書き込まれることがわかりました。構成されたアペンダーが AsyncAppender である場合にのみ、ログの出力は非同期で出力されます。 ログを同期的に出力する場合の状況は次のとおりです: logback.xml 構成:<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> ...... </appender> <root level="DEBUG"> <appender-ref ref="CONSOLE"/> </root>実行コード:
LogWork.debug("111111111111"); System.out.println("2222222222222");実行結果:
非同期印刷ログ クラスを構成する方法は次のとおりです:
非同期印刷ログ クラス AsyncAppender は他のログ印刷クラスを参照する必要があり、ASYNC は印刷する必要があるだけです。印刷する必要があるログ 定義されたキャッシュ キューに書き込み、デーモン スレッドを開始してキューからログを取得し、CONSOLE ログ プリンタを呼び出してファイルを書き込みます。このようにして、ログの印刷は非同期で実行されます。 logback.xml 設定:<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> ...... </appender> <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender"> <discardingThreshold>0</discardingThreshold> <queueSize>100</queueSize> <neverBlock>true</neverBlock> <appender-ref ref="CONSOLE"/> </appender> <root level="INFO"> <appender-ref ref="ASYNC"/> </root>実行コード:
LogWork.debug("111111111111"); System.out.println("2222222222222");実行結果:
以上がlogbackログの非同期印刷方法の紹介(コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。
声明
この記事は博客园で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
1 か月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最高のグラフィック設定
1 か月前By尊渡假赌尊渡假赌尊渡假赌
アサシンのクリードシャドウズ:シーシェルリドルソリューション
3週間前ByDDD
Will R.E.P.O.クロスプレイがありますか?
1 か月前By尊渡假赌尊渡假赌尊渡假赌

ホットツール

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

メモ帳++7.3.1
使いやすく無料のコードエディター
