Selenium の Log4j: Log4j プロパティ ファイルをダウンロードして使用する方法

Selenium の Log4j とは何ですか?

Log4j は、以下で書かれた高速、柔軟、信頼性の高いロギング フレームワーク (APIS) です。 Java 1996 年初頭に開発されました。 アパッチ ソフトウェアライセンス。 Log4J は C、C++、C#、 パール, Python 、Ruby 言語とエッフェル言語。 これは、小規模から大規模までの Selenium オートメーション プロジェクトに使用されるツールです。

Log4j を使用する理由

  • オープンソースです
  • Log4j を使用すると、フローを保存することができます。tails ファイルまたはデータベース内の Selenium オートメーションの
  • Log4j は大規模なプロジェクトにも小規模なプロジェクトにも使用されます
  • Log4j では、コード内で SOPL ステートメントではなくログ ステートメントを使用して、実行中のプロジェクトのステータスを確認します。

Log4j コンポーネント

Log4j コンポーネント

ロガー

情報のログ記録を担当します。 ロガーをプロジェクトに実装するには次のようにしますwing 手順を実行する必要があります

ロガークラスのインスタンスを作成する

Logger クラスは、log4j を使用するためにすでに実装されているすべての汎用メソッドを備えた Java ベースのユーティリティです。

Log4j レベルを定義する

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

  1. すべて – このレベルのログではすべてが記録されます (すべてのログがオンになります)。
  2. DEBUG – デバッグ情報を出力し、開発段階で役立ちます。
  3. INFO – アプリケーションの進行状況を強調する情報メッセージを印刷します。
  4. 警告 – 障害のある予期しないシステム動作に関する情報を出力します。
  5. ERROR – システムの続行を許可する可能性があるエラー メッセージを出力します。
  6. FATAL – アプリケーションのクラッシュの原因となっているシステムの重要な情報を出力します。
  7. OFF – ログを記録しません

アペンダー

LogEvent を宛先に配信するために使用されます。 ログ情報で何が起こるかを決定します。 簡単に言えば、ログをファイルに書き込むために使用されます。 フォロwing アペンダーの種類は少ない

  1. ConsoleAppender の標準出力へのログ
  2. ファイル アペンダはログを何らかのファイルに出力します
  3. 最大サイズのファイルへのファイル アペンダのローリング

注: log4j プロパティでは、任意の名前で appender を呼び出すことができます。 他にもアペンダーがありますが、これらのいくつかに限定します。

レイアウト

ログ情報をさまざまなスタイルでフォーマットする役割を果たします。

Logger クラスは、ログ記録アクティビティを処理するためのさまざまなメソッドを提供します。 Logger オブジェクトを取得するための XNUMX つの静的メソッドが提供されます。

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

log4jはどのように構成されていますか?

log4j を構成するには、どのアペンダーを実装するかを決定する必要があります。 これに応じて、アペンダのパラメータが設定されます。

  • DEBUG レベルと RollingFileAppender を使用します。
  • XNUMX つの構成またはログを実行します。
  • XNUMX つ目: ルート ロガー。システムが生成したすべてのログをファイル名 (つまり Selenium.logs) に書き込みます。
  • XNUMX 番目: コード内の手動コマンドによって生成された情報をファイル名 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<strong>{1}</strong>:%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
    

    上記の例では、Selenium.log と Manual.log という名前の 4 つの異なるファイルにログインするように logXNUMXj を設定しました。

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

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

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

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

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

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

    LogExpert ツールとは何ですか?

    1. LogExpert ツールは、 Windows ログを追跡するために開発されました
    2. 無料のオープンソースのログビューアです。
    3. などの多彩な機能を備えたログ解析ツールです。archiNG、フィルタリング、ブックマーク、ログのハイライト表示
    4. このツールのログでは、ファイルが開かれると自動的に更新されます
    5. このツールでは、複数のログ ファイルを異なるタブで開くことができます。
    6. ブックマークにコメントを付けることもでき、異なるブックマーク間を移動するためのショートカット キーもあります。 完全なブックマーク リストを表示し、そこから移動することもできます。
    7. ヘルプファイルにはツールのショートカットが記載されており、ツールを参照することができます。

    Selenium で Log4j を使用する方法

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

    Selenium で Log4j を使用する

    ステップ2) srcを右クリック -> ビルドパス -> ビルドパスの構成

    Selenium で Log4j を使用する

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

    Selenium で Log4j を使用する

    ステップ4) 新しいファイルを作成します。 このファイルには、すべての log4j 設定が含まれます

    1. srcを右クリック→新規→その他→一般→ファイル
    2. ファイル名は「log4j.properties」とします。
    3. Finishをクリック

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

    Selenium で Log4j を使用する

    ステップ5) log4j.properties に設定全体をコピーします。

    Selenium で Log4j を使用する

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

    1. デフォルトのパッケージを右クリック -> 新規 -> クラス
    2. クラス名を入力し、「完了」をクリックします

    Selenium で Log4j を使用する

    ステップ7) 以下をコピーしますwing メインクラスにコードを書き込む

    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 webiste");
             driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
    		 log.debug("entring 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 inchs");
             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 インチです。 スクリプトは、SE、US、UK 単位で出力をチェックします。

    Logger.getLogger(“devpinoyLogger”) を使用してシステム レベルのログを作成します

    log.debug メソッドを使用して、データを Manual.log に保存します。

    ステップ8) スクリプトを実行します。 手動ログと Selenium ログの場所を開いて、ログ データを確認します。

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

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

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

    2. LogExpert.exeを開きます
    3. [ファイル] -> [開く] をクリックし、Manual.log および Selenium.log ファイルが保存されているパスを参照します。 ファイルを選択してください
    4. 「尾をたどる」オプションを選択します

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

      follow tail オプションを選択すると、ログのテーリングが有効になります。これは、スクリプトが実行フェーズにあるときに LogExpert がログ ファイルを自動的に更新することを意味します。 メモ帳などの他のエディタを使用する場合は、ログを更新するためにファイルを何度も閉じて再度開く必要があります。 ただし、ExpertTool の Follow Tail モードでは、これは必要ありません。

      Following 画像はログのレイアウトを示しています

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

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

    LogExpert ツールを使用すると、このツールと同様に、Selenium Webdriver によって作成されたログをデバッグできます。

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

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