Log4j の使い方 Selenium?

⚡ スマートサマリー

4j にログインします Selenium 高速で柔軟性があります Java 自動化スクリプトのフロー詳細を記録するログフレームワーク。複数のログレベル、アペンダー、レイアウトをサポートし、生​​成されたログファイルの分析にはLogExpertとの連携が効果的です。

  • 🔘 コンポーネント: Log4jは、ロガー、アペンダー、レイアウトを中心に構築されており、これらが連携してログイベントをキャプチャ、ルーティング、フォーマットします。 Selenium 自動化プロジェクト。
  • ☑️ ログレベル: スクリプトの実行時およびデバッグ時に記録される詳細情報のレベルは、7つのレベル(ALL、DEBUG、INFO、WARN、ERROR、FATAL、OFF)で制御されます。
  • 追加機能: ConsoleAppender、FileAppender、およびRollingFileAppenderは、ログエントリをコンソール、静的ファイル、またはローリングファイルセットのいずれに送信するかを決定します。
  • 🧪 構成: log4j.propertiesファイルは、ルートロガーとアプリケーションロガー、ファイルパス、最大ファイルサイズ、バックアップインデックス、およびPatternLayoutの書式設定ルールを定義します。
  • 🛠️ LogExpert Viewer: 無料のLogExpertツールは Selenium また、手動ログファイルをリアルタイムで表示し、フィルタリング、ブックマーク、ハイライト表示、マルチタブ表示などの機能も備えています。

Log4j の使い方 Selenium

Log4jとは何ですか Selenium?

Log4jは、高速で柔軟かつ信頼性の高いロギングフレームワーク(API)です。 Java そして1996年初頭に開発されました。 アパッチ ソフトウェアライセンス。Log4jはC言語に移植されています。 C++、C#、 パール, PythonRubyやEiffelなどの言語に対応しています。小規模から大規模まで幅広く使用できるツールです。 Selenium 自動化プロジェクト。

Log4j を使用する理由

Log4jは、以下のような実用的な利点をいくつか提供します。 Selenium プロジェクト:

  • オープンソースです。
  • Log4j を使用すると、フローの詳細を保存できます。 Selenium ファイルまたはデータベースにおける自動化。
  • Log4jは、大規模プロジェクトにも小規模プロジェクトにも対応できます。
  • Log4jでは、プロジェクトの実行中にその状態を把握するために、コード内のSystem.out.printlnステートメントの代わりにlogステートメントが使用されます。

Log4j コンポーネント

Log4j コンポーネント

ロガー

ロガーは情報を記録する役割を担います。プロジェクトにロガーを実装するには、以下の手順を実行する必要があります。

Loggerクラスのインスタンスを作成します。

Logger クラスは JavaLog4jを使用するための汎用メソッドがすべて実装されている、-ベースのユーティリティ。

Log4j レベルを定義する

ログレベルには主に7種類あります。

  1. すべて – このレベルのログ記録では、すべてが記録されます(すべてのログが有効になります)。
  2. DEBUG – デバッグ情報を出力し、開発段階で役立ちます。
  3. INFO – アプリケーションの進行状況を示す情報メッセージを表示します。
  4. 警告 – システムの不具合や予期しない動作に関する情報を表示します。
  5. エラー – システムが処理を続行できる可能性のあるエラーメッセージを表示します。
  6. FATAL – アプリケーションのクラッシュを引き起こす、システムにとって重大な情報を表示します。
  7. OFF – ログを記録しません。

アペンダー

アペンダーは、ログイベントを宛先に配信するために使用されます。ログ情報の処理方法を決定します。簡単に言うと、ログをファイルに書き込みます。以下に、アペンダーの種類をいくつか示します。

  1. ConsoleAppenderは標準出力にログを出力します。
  2. FileAppenderは、ログを特定のファイルに出力します。
  3. RollingFileAppenderは、最大サイズのファイルに書き込みます。

注意: log4j.properties ファイルでは、アペンダーに任意の名前を付けることができます。他にもアペンダーはありますが、ここではこれらのアペンダーに焦点を当てます。

レイアウト

レイアウトは、ログ情報をさまざまなスタイルでフォーマットする役割を担います。

Loggerクラスは、ログ記録処理を行うためのさまざまなメソッドを提供します。Loggerオブジェクトを取得するための静的メソッドが2つ用意されています。

public static Logger getRootLogger()
public static Logger getLogger(String name)

Log4jはどのように設定されていますか?

Log4jを設定するには、どのAppenderを実装するかを決定します。Appenderのパラメータはそれに応じて設定されます。

  • DEBUGレベルとRollingFileAppenderを使用してください。
  • 2つの設定またはログが作成されます。
    • まず、ルートロガーは、システムで生成されたすべてのログをファイルに書き込みます。 Selenium.logs。
    • 2つ目は、アプリケーションロガーです。これは、コード内の手動コマンドによって生成された情報を、Manual.logs という名前のファイルに書き込みます。
  • 使用されているレイアウトはPatternLayoutです。

#ルートロガー

log4j.rootLogger=DEBUG,file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=D:\\Guru99\\src\\Selenium.logs
log4j.appender.file.maxFileSize=900KB
log4j.appender.file.maxBackupIndex=5
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.appender.file.Append=false

#アプリケーションログ

log4j.logger.devpinoyLogger=DEBUG, dest1
log4j.appender.dest1=org.apache.log4j.RollingFileAppender
log4j.appender.dest1.maxFileSize=900KB
log4j.appender.dest1.maxBackupIndex=6
log4j.appender.dest1.layout=org.apache.log4j.PatternLayout
log4j.appender.dest1.layout.ConversionPattern=%d{dd/MM/yyyy HH:mm:ss} %c %m%n
log4j.appender.dest1.File=D:\\Guru99\\src\\Manual.logs
log4j.appender.dest1.Append=false

上記の例では、Log4j は 2 つの異なるファイルにログを記録するように構成されています。 Selenium.log と Manual.log。

  • file と dest1 は XNUMX つの識別子です。
  • 「ファイル」は、ログが保存されるファイル名を指定するために使用されます。
  • 「maxFileSize」は、ログファイルの最大サイズを設定するために使用されます。ファイルがこのサイズに達すると、同じ名前の新しいファイルが作成され、古いファイル名にはインデックスサフィックスが付加されます。
  • 「maxBackupIndex」は、バックアップするファイルの最大数を設定するために使用されます。
  • 「layout」はログファイルの形式を設定するために使用されます。
  • 「Append」は、ログ記録機能を設定するために使用されます。これをfalseに設定すると、ログ記録のために古いファイルを再利用するのではなく、毎回新しいファイルが作成されます。

スクリプト内でLog4jはどのように使用されますか?

コード内では、「log」はLoggerクラスのgetLoggerメソッドを参照する参照変数として使用されています。

Logger log = Logger.getLogger("devpinoyLogger");

必要な情報をログに記録するには、「log」参照変数とデバッグメソッドを使用します。

log.debug("--information--");

LogExpert ツールとは何ですか?

LogExpertは、以下の特徴を持つツールです。

  1. LogExpertは Windows ログを追跡するために開発されたツール。
  2. これは無料のオープンソースのログビューアです。
  3. これは、ログの検索、フィルタリング、ブックマーク、ハイライト表示など、複数の機能を備えたログ分析ツールです。
  4. ログファイルは、このツールで開くと自動的に更新されます。
  5. 複数のログファイルを異なるタブで開くことができます。
  6. ブックマークにはコメントを追加でき、ショートカットキーで異なるブックマーク間を移動できます。ブックマークの一覧も閲覧可能です。
  7. ツールのショートカットはヘルプファイルに記載されているので、必要に応じて参照できます。

Log4j の使用方法 Selenium

ステップ1) In Eclipselog4j_demo という名前で新しいプロジェクトを作成します。

Log4j を使用する Selenium

ステップ2) src を右クリックして、[ビルド パス] -> [ビルド パスの設定] を選択します。

Log4j を使用する Selenium

ステップ3) 「ライブラリ」をクリックして、Log4jライブラリを追加します。ダウンロードはこちらから。 https://logging.apache.org/log4j/1.2/download.html.

Log4j を使用する Selenium

ステップ4) 新しいファイルを作成します。このファイルには、Log4jのすべての設定情報が格納されます。

  1. src を右クリックして、[新規] -> [その他] -> [一般] -> [ファイル] を選択します。
  2. ファイル名を「log4j.properties」としてください。
  3. 完了をクリックします。

さらに2つのファイルを作成し、名前を付けます。 Selenium.logs および Manual.logs。これらのファイルには、システムによって作成されたすべてのログと、手動で記録されたステートメントが含まれています。

Log4j を使用する Selenium

ステップ5) log4j.properties ファイルに、設定全体をコピーしてください。

Log4j を使用する Selenium

ステップ6) メインクラスを作成します。

  1. デフォルトパッケージを右クリックして、[新規] -> [クラス]を選択します。
  2. クラスに名前を付けて、「完了」をクリックしてください。

Log4j を使用する Selenium

ステップ7) 以下のコードをメインクラスにコピーしてください。

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.apache.log4j.Logger;

public class LoggingDemo {
    /**
     * @param args
     */
    public static void main(String[] args) {
         // TODO Auto-generated method stub
         WebDriver driver = new FirefoxDriver();
         Logger log = Logger.getLogger("devpinoyLogger");

         driver.get("https://healthunify.com/bmicalculator/");
         log.debug("opening website");
         driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
         log.debug("entering weight");
         driver.findElement(By.name("wg")).sendKeys("87");
         log.debug("selecting kilograms");
         driver.findElement(By.name("opt1")).sendKeys("kilograms");
         log.debug("selecting height in feet");
         driver.findElement(By.name("opt2")).sendKeys("5");
         log.debug("selecting height in inches");
         driver.findElement(By.name("opt3")).sendKeys("10");
         log.debug("clicking on calculate");
         driver.findElement(By.name("cc")).click();

         log.debug("getting SIUnit value");
         String SIUnit = driver.findElement(By.name("si")).getAttribute("value");
         log.debug("getting USUnit value");
         String USUnit = driver.findElement(By.name("us")).getAttribute("value");
         log.debug("getting UKUnit value");
         String UKUnit = driver.findElement(By.name("uk")).getAttribute("value");
         log.debug("getting overall description");
         String note = driver.findElement(By.name("desc")).getAttribute("value");

         System.out.println("SIUnit = " + SIUnit);
         System.out.println("USUnit = " + USUnit);
         System.out.println("UKUnit = " + UKUnit);
         System.out.println("note = " + note);
        driver.quit();
    }
}

上記のコードでは、スクリプトは https://healthunify.com/bmicalculator/ そして、BMI計算機の精度を検証します。入力された体重は87kg、身長は5フィート10インチです。このスクリプトは、SI単位系、米国単位系、英国単位での出力をチェックします。

Logger.getLogger(“devpinoyLogger”) を使用すると、スクリプトはシステムレベルのログを作成します。log.debug メソッドを使用すると、データは Manual.log に保存されます。

ステップ8) スクリプトを実行します。マニュアルの場所を開き、 Selenium ログデータを確認するためにログを実行します。

LogExpert ツールを使用してログを分析する方法

  1. からツールをダウンロードします https://github.com/zarunbal/LogExpertLogExpertのダウンロードフォルダに移動してください。

    LogExpert ツールを使用してログを分析できる

  2. LogExpert.exeを開きます。
  3. ファイル -> 開くをクリックして、Manual.log と Selenium.log ファイルが保存されています。ファイルを選択してください。
  4. 「尾行」オプションを選択してください。

    LogExpert ツールを使用してログを分析できる

    「Follow Tail」を選択すると、ログの末尾追跡が有効になり、スクリプトの実行中にLogExpertがログファイルを自動的に更新します。メモ帳などの他のエディタでは、ログを更新するにはファイルを繰り返し閉じたり開いたりする必要がありますが、LogExpertの「Follow Tail」モードでは、そのような操作は不要です。

    以下の画像は、ログの配置を示しています。

    LogExpert ツールを使用してログを分析できる

    LogExpert ツールを使用してログを分析できる

LogExpert を使用すると、 Selenium WebDriverはデバッグ可能です。このツールでは、以下のことが可能です。

  • 任意のテキストと正規表現を検索します。
  • ブックマークを作成してコメントを付けたり、ブックマーク間を移動したりできる。これは他のツールでは不可能な機能です。
  • ログをフィルタリングし、テキスト範囲を検索し、以前にフィルタリングしたログに別のフィルタを適用します。
  • 特定の単語に基づいて、異なる行をハイライト表示する。

このツールは、データをさまざまな列に分割するのにも役立ちます。

よくあるご質問

Log4j 1.xは2015年にサポートが終了し、設定にはプロパティファイルまたはXMLファイルを使用します。Log4j 2.xは、パフォーマンスの向上、非同期ロガー、ラムダ式のサポート、Log4Shellのパッチ適用後のセキュリティ強化などにより、新規プロジェクトに推奨される選択肢となっています。

Log4j は、設定可能なログレベル、永続的なファイル出力、ローリングバックアップ、構造化パターンをサポートしています。System.out.println はコンソールにのみ書き込み、フィルタリングやアーカイブはできません。Log4j は Selenium 検査結果のトリアージ、監査、再現が容易になる。

はい。AIアシスタントは、大規模なLog4j出力を解析し、繰り返される障害をクラスタリングし、根本原因のパターンを明らかにすることができます。 Selenium 実行。不安定なロケーター、遅いステップ、スタックを強調します。 tracつまり、生のログ行をQAエンジニア向けの優先順位付けされたアクション項目に変換するということです。

AIを活用したオブザーバビリティプラットフォームは、Log4jストリームを取り込み、リアルタイムで異常を検知し、ユーザーに影響を与える前に障害を予測します。機械学習モデルは、深刻度を評価し、ノイズの多いイベントの重複を排除し、スマートアラートをトリガーすることで、手動のgrepワークフローをプロアクティブな監視に置き換えます。

いいえ。LogExpertは人気の無料サービスです。 Windows テールフォローとフィルタリングを備えたビューアですが、代替案としては、BareTail、glogg、Klogg、およびSplunkのようなフルプラットフォームがあります。 Graylogあるいは、複数のマシンにわたる集中分析のためのELKスタック。