7.5. Log4J を使用して OptaPlanner ソルバーアクティビティーをログに記録する


すでに Log4J を使用していて、より高速な後継である Logback に切り替えたくない場合は、Log4J 用に OptaPlanner プロジェクトを設定できます。

前提条件

  • OptaPlanner プロジェクトがあります
  • Log4J ロギングフレームワークを使用しています

手順

  1. ブリッジの依存関係をプロジェクトの pom.xml ファイルに追加します。

        <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-log4j12</artifactId>
          <version>1.x</version>
        </dependency>
  2. 次の例に示すように、log4j.xml ファイルのパッケージ org.optaplanner でログレベルを設定します。ここで、<LEVEL>「Logback を使用して OptaPlanner ソルバーアクティビティーをログに記録する」 にリストされているログレベルです。

    <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    
      <category name="org.optaplanner">
        <priority value="<LEVEL>" />
      </category>
    
      ...
    
    </log4j:configuration>
  3. オプション: 複数の ソルバー インスタンスが同時に実行されている可能性があるマルチテナントアプリケーションがある場合は、各インスタンスのログを別々のファイルに分割します。

    1. solve() 呼び出しをマップされた診断コンテキスト (MDC) で囲みます。

              MDC.put("tenant.name",tenantName);
              MySolution bestSolution = solver.solve(problem);
              MDC.remove("tenant.name");
    2. ${tenant.name} ごとに異なるファイルを使用するようにロガーを設定します。たとえば、 logback.xml ファイルで SiftingAppender を使用します。

        <appender name="fileAppender" class="ch.qos.logback.classic.sift.SiftingAppender">
          <discriminator>
            <key>tenant.name</key>
            <defaultValue>unknown</defaultValue>
          </discriminator>
          <sift>
            <appender name="fileAppender.${tenant.name}" class="...FileAppender">
              <file>local/log/optaplanner-${tenant.name}.log</file>
              ...
            </appender>
          </sift>
        </appender>
      注記

      複数のソルバーまたは 1 つのマルチスレッドソルバーを実行する場合、コンソールを含むほとんどのアペンダーは、デバッグ および トレース ログで輻輳を引き起こします。この問題を回避するには、非同期アペンダーに切り替えるか、デバッグ ログをオフにします。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.