私の記事を読んだら、本番環境でログをチェックすることで拷問を受けたに違いありません。実稼働環境にELKのようなログクエリツールがない場合は、ログのモジュール化とファイルの区別により、ログ情報をより迅速に見つけることができます。例:注文ログ、要求ログ、応答ログ、サービス間の相互呼び出しログなど。
1.現在のクラスのログは別のファイルに保存されます
たとえば、orderServiceのログは個別に保存する必要があります。
@Service
@Slf4j(topic = "order")
public class OrderServiceImpl{
}
注釈のtopic
ように設定し、タグorder
をlogback.xml
追加して、ログレベルをに設定します(ログレベルはそれ自体で設定されます)。logger
info
<logger name="order" level="info">
<appender-ref ref="api-order"/>
</logger>
印刷位置を設定しますappender
。appender-ref
の値は、のプロパティと一致しているref
必要があります。appender
name
<appender name="order" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/order.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 按天回滚 -->
<fileNamePattern>${log.path}/%d{yyyy-MM-dd}/order.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史7天 -->
<maxHistory>7</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
</appender>
上記の設定で説明したように、当日のログがに印刷されorder.log
、履歴ログが日ごとに保存され、最大7日間のログが保存されます。ログの印刷形式は次のとおりですlog.pattern
(ログの印刷形式については、オンラインで多数あり、自分で設定できます)
2.特定のログが特定のファイルにあります
注文全体のプロセス全体を記録する場合、この注文のロジックは複数のクラスで記述される可能性があるため、1つのクラスでの印刷は実行できません。したがって、複数の場所を印刷する必要があります。印刷方法は次のとおりです。
private Logger orderlog = LoggerFactory.getLogger("order");
LoggerFactory.getLogger
メソッド を使用してログオブジェクトを作成します。着信order
表現は、注文固有の印刷ログオブジェクトです。注文の作成、注文の変更、その他の手順など、注文に必要な手順では、この方法でログ印刷を実行できます。
logback.xml
追加 ._ logger
_ 同じことname
をする必要がありorder
ます。appender-ref
ログの印刷場所を設定します。ドアツードアappender
構成と同様に、自分で構成できます。
<logger name="order" level="info">
<appender-ref ref="order"/>
</logger>
3.モジュールに従って印刷します
注文モジュール、商品モジュール、ユーザーモジュールなどは、固定パッケージ名に従ってログを印刷します。例として注文モジュールを取り上げ、パッケージのパスである新しいモジュールを追加し、その印刷パスを追加してlogger
設定name
します。値がclasspathの場合、テーブル名はこのクラスのログを抽出します。order
appender-ref
name
<logger name="com.order.service" level="info">
<appender-ref ref="order"/>
</logger>
要約する
すべての抽出はロガータグを使用して行われます。その名前は、トピック名、一般名、パッケージ名、クラス名にすることができます。
- トピック名は、アノテーション@ Slf4j(topic = "order")によって設定されます。
- 共通名はLoggerFactory.getLogger( "order")によって設定されます。
- パッケージ名とクラス名はロガータグで設定できます。
各ロガータグは、独自のログの基本を設定できます。通常、独自のビジネスシステムのログレベルは情報です。他のフレームワークを参照している場合、通常、ログレベルは警告されます。ログバックには5つのレベルがあります。つまり、TRACE <DEBUG <INFO <WARN<ERRORです。
ファイルに単独で抽出されたログは、デフォルトroot
でタグのログと複製されます。つまりlogger
、root
ラベルはデフォルトでラベルから継承されます。ログが繰り返されないようにする場合は、に設定できadditivity
ますfalse
。
<logger name="order" level="info" additivity="false"/>