4j にログインします Selenium: Log4j プロパティ ファイルのダウンロードと使用方法

Log4jとは何ですか Selenium?

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

Log4j を使用する理由

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

Log4j コンポーネント

Log4j コンポーネント

ロガー

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

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

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

Log4j レベルを定義する

主に5種類のログレベルがあります

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

アペンダー

これは、LogEventsを宛先に配信するために使用されます。ログ情報で何が起こるかを決定します。簡単に言えば、ログをファイルに書き込むために使用されます。以下は、いくつかの種類のAppenderです。

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

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

レイアウト

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

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

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

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

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

  • DEBUG レベルと RollingFileAppender を使用します。
  • XNUMX つの構成またはログを実行します。
  • 1 つ目: ルート ロガー。システムが生成したすべてのログをファイル名で書き込みます。 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
    

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

    • 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. これは、ログの検索、フィルタリング、ブックマーク、強調表示などの複数の機能を備えたログ分析ツールです。
    4. このツールのログでは、ファイルが開かれると自動的に更新されます
    5. このツールでは、複数のログ ファイルを異なるタブで開くことができます。
    6. ブックマークにコメントを付けることもでき、異なるブックマーク間を移動するためのショートカット キーもあります。 完全なブックマーク リストを表示し、そこから移動することもできます。
    7. ヘルプファイルにはツールのショートカットが記載されており、ツールを参照することができます。

    Log4j の使用方法 Selenium

    ステップ1) In Eclipse log4j_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. Finishをクリック

    さらに 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 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 モードでは、これは必要ありません。

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

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

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

    LogExpertツールを使用すると、このツールで一度実行したように、Selenium WebDriverによって作成されたログをデバッグできます。

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

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