Πώς να χρησιμοποιήσετε το Log4j στο Selenium?

⚡ Έξυπνη Σύνοψη

Συνδεθείτε4j Selenium είναι γρήγορο, ευέλικτο Java Πλαίσιο καταγραφής που καταγράφει λεπτομέρειες ροής σεναρίων αυτοματισμού. Υποστηρίζει πολλαπλά επίπεδα καταγραφής, προσαρτήματα και διατάξεις και συνδυάζεται καλά με το LogExpert για την ανάλυση των δημιουργημένων αρχείων καταγραφής.

  • 🔘 Συστατικά: Το Log4j βασίζεται σε καταγραφείς, προσαρτήματα και διατάξεις που μαζί καταγράφουν, δρομολογούν και μορφοποιούν συμβάντα καταγραφής για Selenium έργα αυτοματισμού.
  • ☑️ Επίπεδα καταγραφής: Επτά επίπεδα (ΟΛΑ, ΕΝΤΟΠΙΣΜΟΣ ΣΦΑΛΜΑΤΩΝ, ΠΛΗΡΟΦΟΡΙΕΣ, ΠΡΟΕΙΔΟΠΟΙΗΣΗ, ΣΦΑΛΜΑ, ΘΑΝΑΤΗΦΟΡΟ, ΑΠΕΝΕΡΓΟΠΟΙΗΣΗ) ελέγχουν πόσες λεπτομέρειες καταγράφονται κατά την εκτέλεση του σεναρίου και τον εντοπισμό σφαλμάτων.
  • ✅ Προσαρτήματα: Τα ConsoleAppender, FileAppender και RollingFileAppender αποφασίζουν εάν οι καταχωρήσεις καταγραφής θα μεταβούν στην κονσόλα, σε ένα στατικό αρχείο ή σε ένα κυλιόμενο σύνολο αρχείων.
  • 🧪 Διαμόρφωση: Ένα αρχείο log4j.properties ορίζει τα αρχεία καταγραφής root και εφαρμογών, τις διαδρομές αρχείων, το μέγιστο μέγεθος αρχείου, το ευρετήριο αντιγράφων ασφαλείας και τους κανόνες μορφοποίησης PatternLayout.
  • ️ Πρόγραμμα προβολής LogExpert: Το δωρεάν εργαλείο LogExpert Selenium και μη αυτόματα αρχεία καταγραφής σε πραγματικό χρόνο, με φιλτράρισμα, προσθήκη σελιδοδεικτών, επισήμανση και προβολή σε πολλαπλές καρτέλες.

Πώς να χρησιμοποιήσετε το Log4j στο Selenium

Τι είναι το Log4j in Selenium?

Το Log4j είναι ένα γρήγορο, ευέλικτο και αξιόπιστο πλαίσιο καταγραφής (API) γραμμένο σε Java και αναπτύχθηκε στις αρχές του 1996. Διανέμεται υπό την Apache Άδεια χρήσης λογισμικού. Το Log4j έχει μεταφερθεί στην C, C++, C#, Perl, Python, Ruby και Eiffel. Είναι ένα εργαλείο που χρησιμοποιείται για μικρές έως μεγάλες γλώσσες Selenium έργα αυτοματισμού.

Γιατί να χρησιμοποιήσετε το Log4j;

Το Log4j προσφέρει πολλά πρακτικά οφέλη για Selenium έργα:

  • Είναι ανοιχτού κώδικα.
  • Με το Log4j, είναι δυνατή η αποθήκευση των λεπτομερειών ροής του Selenium αυτοματοποίηση σε ένα αρχείο ή βάση δεδομένων.
  • Το Log4j λειτουργεί τόσο για μεγάλα όσο και για μικρά έργα.
  • Στο Log4j, οι εντολές καταγραφής αντικαθιστούν τις εντολές System.out.println στον κώδικα για να γνωρίζουν την κατάσταση ενός έργου κατά την εκτέλεσή του.

Στοιχεία Log4j

Στοιχεία Log4j

Ξυλοκόποι

Ο Καταγραφέας είναι υπεύθυνος για την καταγραφή πληροφοριών. Για να εφαρμόσετε καταγραφείς σε ένα έργο, πρέπει να εκτελέσετε τα ακόλουθα βήματα.

Δημιουργήστε μια παρουσία για την κλάση Logger

Η κλάση Logger είναι μια JavaΒοηθητικό πρόγραμμα βασισμένο σε - που έχει ήδη υλοποιήσει όλες τις γενικές μεθόδους για τη χρήση του Log4j.

Καθορίστε το επίπεδο Log4j

Υπάρχουν κυρίως επτά είδη επιπέδων καταγραφής:

  1. ΟΛΑ – Αυτό το επίπεδο καταγραφής καταγράφει τα πάντα (ενεργοποιεί όλα τα αρχεία καταγραφής).
  2. DEBUG – εκτυπώνει πληροφορίες εντοπισμού σφαλμάτων και είναι χρήσιμο στο στάδιο της ανάπτυξης.
  3. INFO – εκτυπώνει ενημερωτικά μηνύματα που επισημαίνουν την πρόοδο της εφαρμογής.
  4. ΠΡΟΕΙΔΟΠΟΙΗΣΗ – εκτυπώνει πληροφορίες σχετικά με ελαττωματική και μη αναμενόμενη συμπεριφορά συστήματος.
  5. ΣΦΑΛΜΑ – εκτυπώνει μηνύματα σφάλματος που ενδέχεται να επιτρέψουν στο σύστημα να συνεχίσει.
  6. FATAL – εκτυπώνει κρίσιμες πληροφορίες συστήματος που προκαλούν διακοπή λειτουργίας της εφαρμογής.
  7. ΑΠΕΝΕΡΓΟΠΟΙΗΜΕΝΟ – Δεν γίνεται καταγραφή.

Προσαρτήματα

Ένας Appender χρησιμοποιείται για την παράδοση των LogEvents στον προορισμό τους. Αποφασίζει τι θα συμβεί με τις πληροφορίες καταγραφής. Με απλά λόγια, γράφει αρχεία καταγραφής σε ένα αρχείο. Ακολουθούν μερικοί τύποι Appender:

  1. Το ConsoleAppender καταγράφει την τυπική έξοδο.
  2. Το FileAppender εκτυπώνει αρχεία καταγραφής σε ένα συγκεκριμένο αρχείο.
  3. Το RollingFileAppender γράφει σε ένα αρχείο με μέγιστο μέγεθος.

Σημείωση: Στο log4j.properties, ένα αρχείο appender μπορεί να κληθεί με οποιοδήποτε όνομα. Υπάρχουν και άλλα appender, αλλά η έμφαση εδώ δίνεται σε αυτά τα λίγα.

σχεδιαγράμματα

Η διάταξη είναι υπεύθυνη για τη μορφοποίηση των πληροφοριών καταγραφής σε διαφορετικά στυλ.

Η κλάση Logger παρέχει διαφορετικές μεθόδους για τη διαχείριση των δραστηριοτήτων καταγραφής. Παρέχει δύο στατικές μεθόδους για την απόκτηση ενός αντικειμένου Logger.

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

Πώς έχει ρυθμιστεί το Log4j;

Για να ρυθμίσετε το Log4j, αποφασίστε ποιον προσαρτητή θα υλοποιήσετε. Οι παράμετροι του προσαρτητή ορίζονται ανάλογα.

  • Χρησιμοποιήστε το επίπεδο DEBUG και το RollingFileAppender.
  • Δημιουργούνται δύο διαμορφώσεις ή αρχεία καταγραφής:
    • Πρώτον: ένα πρόγραμμα καταγραφής root, το οποίο καταγράφει όλα τα αρχεία καταγραφής που δημιουργούνται από το σύστημα σε ένα αρχείο με το όνομα Selenium.logs.
    • Δεύτερον: ένα πρόγραμμα καταγραφής εφαρμογών, το οποίο γράφει πληροφορίες που δημιουργούνται από μη αυτόματες εντολές σε κώδικα στο αρχείο με το όνομα Manual.logs.
  • Η διάταξη που χρησιμοποιείται είναι η PatternLayout.

#Root logger

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 έχει ρυθμιστεί για σύνδεση σε δύο διαφορετικά αρχεία με ονόματα Selenium.log και Manual.log.

  • αρχείο και dest1 είναι τα δύο αναγνωριστικά.
  • Η λέξη «Αρχείο» χρησιμοποιείται για να δώσει το όνομα αρχείου στο οποίο αποθηκεύονται τα αρχεία καταγραφής.
  • Το «maxFileSize» χρησιμοποιείται για τη διαμόρφωση του μέγιστου μεγέθους του αρχείου καταγραφής. Όταν το αρχείο φτάσει σε αυτό το μέγεθος, δημιουργείται ένα νέο αρχείο με το ίδιο όνομα και το παλιό όνομα αρχείου λαμβάνει ένα επίθημα ευρετηρίου.
  • Το «maxBackupIndex» χρησιμοποιείται για τη διαμόρφωση του μέγιστου αριθμού αρχείων για δημιουργία αντιγράφων ασφαλείας.
  • Το "layout" χρησιμοποιείται για να ορίσετε τη μορφή του αρχείου καταγραφής.
  • Η συνάρτηση "Append" χρησιμοποιείται για τον ορισμό της συνάρτησης προσάρτησης. Όταν έχει οριστεί σε false, δημιουργείται ένα νέο αρχείο κάθε φορά αντί να επαναχρησιμοποιείται το παλιό αρχείο για καταγραφή.

Πώς χρησιμοποιείται το Log4j μέσα σε ένα σενάριο;

Στον κώδικα, το "log" χρησιμοποιείται ως μεταβλητή αναφοράς που αναφέρεται στη μέθοδο getLogger της κλάσης Logger.

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

Χρησιμοποιήστε τη μεταβλητή αναφοράς "log" και τη μέθοδο εντοπισμού σφαλμάτων για να καταγράψετε τις πληροφορίες που χρειάζεστε.

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

Τι είναι ένα εργαλείο LogExpert;

Το LogExpert είναι ένα εργαλείο με τα ακόλουθα χαρακτηριστικά:

  1. Το LogExpert είναι ένα Windows εργαλείο που αναπτύχθηκε για την παρακολούθηση των κορμών.
  2. Είναι ένα δωρεάν και ανοιχτού κώδικα πρόγραμμα προβολής αρχείων καταγραφής.
  3. Είναι ένα εργαλείο ανάλυσης αρχείων καταγραφής με πολλαπλές λειτουργίες, όπως αναζήτηση, φιλτράρισμα, προσθήκη σελιδοδεικτών και επισήμανση αρχείων καταγραφής.
  4. Τα αρχεία καταγραφής ενημερώνονται αυτόματα όταν ανοίγονται σε αυτό το εργαλείο.
  5. Μπορείτε να ανοίξετε πολλά αρχεία καταγραφής σε διαφορετικές καρτέλες.
  6. Μπορείτε να προσθέσετε σχόλια στους σελιδοδείκτες και ένα πλήκτρο συντόμευσης σας επιτρέπει να πλοηγείστε μεταξύ διαφορετικών σελιδοδεικτών. Διατίθεται μια πλήρης λίστα σελιδοδεικτών για πλοήγηση.
  7. Οι συντομεύσεις του εργαλείου παρέχονται στο αρχείο βοήθειας, ώστε να μπορείτε να ανατρέχετε σε αυτές όποτε χρειάζεται.

Πώς να χρησιμοποιήσετε το Log4j in Selenium

Βήμα 1) In Eclipse, δημιουργήστε ένα νέο έργο με το όνομα log4j_demo.

Χρησιμοποιήστε το Log4j In Selenium

Βήμα 2) Κάντε δεξί κλικ στο src -> Διαδρομή δημιουργίας -> Ρύθμιση παραμέτρων διαδρομής δημιουργίας.

Χρησιμοποιήστε το Log4j In Selenium

Βήμα 3) Κάντε κλικ στις Βιβλιοθήκες και προσθέστε τη βιβλιοθήκη Log4j. Μπορείτε να την κατεβάσετε από https://logging.apache.org/log4j/1.2/download.html.

Χρησιμοποιήστε το Log4j In Selenium

Βήμα 4) Δημιουργήστε ένα νέο αρχείο. Αυτό το αρχείο περιέχει όλες τις ρυθμίσεις του Log4j.

  1. Κάντε δεξί κλικ στο src -> Νέο -> Άλλο -> Γενικά -> Αρχείο.
  2. Δώστε το όνομα αρχείου ως "log4j.properties".
  3. Κάντε κλικ στο Τέλος.

Δημιουργήστε δύο ακόμη αρχεία και ονομάστε τα Selenium.logs και Manual.logs. Αυτά τα αρχεία περιέχουν όλα τα αρχεία καταγραφής που δημιουργούνται από το σύστημα και τις χειροκίνητα καταγεγραμμένες εντολές.

Χρησιμοποιήστε το Log4j In Selenium

Βήμα 5) Στο αρχείο log4j.properties, αντιγράψτε ολόκληρη τη διαμόρφωση.

Χρησιμοποιήστε το Log4j In Selenium

Βήμα 6) Δημιουργήστε την κύρια κλάση:

  1. Κάντε δεξί κλικ στο προεπιλεγμένο πακέτο -> Νέο -> Κλάση.
  2. Δώστε ένα όνομα στην κλάση και κάντε κλικ στο Τέλος.

Χρησιμοποιήστε το Log4j In 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/ και επαληθεύει την αριθμομηχανή ΔΜΣ. Το βάρος που καταχωρήθηκε είναι 87 κιλά και το ύψος είναι 5 πόδια και 10 ίντσες. Το σενάριο ελέγχει την έξοδο σε μονάδες SI, 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 μπορεί να χρησιμοποιηθεί για την ανάλυση του αρχείου καταγραφής

    Η επιλογή "Ακολουθήστε την ουρά" ενεργοποιεί την παρακολούθηση των αρχείων καταγραφής, πράγμα που σημαίνει ότι το LogExpert ενημερώνει αυτόματα το αρχείο καταγραφής ενώ εκτελείται το σενάριο. Με οποιοδήποτε άλλο πρόγραμμα επεξεργασίας όπως το Σημειωματάριο, το αρχείο πρέπει να κλείνεται και να ανοίγεται ξανά επανειλημμένα για την ενημέρωση των αρχείων καταγραφής. Με το LogExpert σε λειτουργία "Ακολουθήστε την ουρά", αυτό δεν απαιτείται.

    Οι παρακάτω εικόνες δείχνουν τη διάταξη των αρχείων καταγραφής.

    Το εργαλείο LogExpert μπορεί να χρησιμοποιηθεί για την ανάλυση του αρχείου καταγραφής

    Το εργαλείο LogExpert μπορεί να χρησιμοποιηθεί για την ανάλυση του αρχείου καταγραφής

Χρησιμοποιώντας το LogExpert, τα αρχεία καταγραφής που δημιουργούνται από το Selenium Το WebDriver μπορεί να εντοπιστεί σφάλματα. Σε αυτό το εργαλείο, μπορείτε να κάνετε τα εξής:

  • Αναζήτηση για οποιοδήποτε κείμενο και κανονική έκφραση.
  • Δημιουργήστε σελιδοδείκτες και σχολιάστε τους, καθώς και πλοηγηθείτε μεταξύ τους, κάτι που δεν είναι δυνατό σε κανένα άλλο εργαλείο.
  • Φιλτράρετε τα αρχεία καταγραφής, αναζητήστε εύρη κειμένου και εφαρμόστε ένα άλλο φίλτρο στα αρχεία καταγραφής που είχαν φιλτραριστεί προηγουμένως.
  • Επισημάνετε διαφορετικές γραμμές με βάση συγκεκριμένες λέξεις.

Αυτό το εργαλείο βοηθά επίσης να χωρίσετε τα δεδομένα σε διαφορετικές στήλες.

Συχνές Ερωτήσεις

Το Log4j 1.x έφτασε στο τέλος της διάρκειας ζωής του το 2015 και χρησιμοποιεί ένα αρχείο ιδιοτήτων ή XML για τη διαμόρφωση. Το Log4j 2.x προσφέρει καλύτερη απόδοση, ασύγχρονα καταγραφικά, υποστήριξη λάμδα και βελτιωμένη ασφάλεια μετά τις ενημερώσεις κώδικα Log4Shell, καθιστώντας το την προτεινόμενη επιλογή για νέα έργα.

Το Log4j υποστηρίζει διαμορφώσιμα επίπεδα καταγραφής, μόνιμη έξοδο αρχείων, κυλιόμενα αντίγραφα ασφαλείας και δομημένα μοτίβα. Το System.out.println γράφει μόνο στην κονσόλα και δεν μπορεί να φιλτραριστεί ή να αρχειοθετηθεί. Το Log4j δημιουργεί Selenium ευκολότερη διαλογή, έλεγχος και αναπαραγωγή των αποτελεσμάτων των δοκιμών.

Ναι. Οι βοηθοί τεχνητής νοημοσύνης μπορούν να αναλύσουν μεγάλη έξοδο Log4j, να ομαδοποιήσουν επαναλαμβανόμενες αποτυχίες και να επισημάνουν μοτίβα αιτιών σε όλο το εύρος. Selenium τρεξίματα. Επισημαίνουν ασταθείς εντοπιστές, αργά βήματα και στοίβα traces, μετατρέποντας τις ακατέργαστες γραμμές καταγραφής σε στοιχεία δράσης με προτεραιότητα για τους μηχανικούς διασφάλισης ποιότητας.

Οι πλατφόρμες παρατηρησιμότητας που βασίζονται στην τεχνητή νοημοσύνη (AI) απορροφούν ροές Log4j, ανιχνεύουν ανωμαλίες σε πραγματικό χρόνο και προβλέπουν αποτυχίες πριν επηρεάσουν τους χρήστες. Τα μοντέλα μηχανικής μάθησης βαθμολογούν τη σοβαρότητα, καταργούν τα διπλότυπα θορυβώδη συμβάντα και ενεργοποιούν έξυπνες ειδοποιήσεις, αντικαθιστώντας τις χειροκίνητες ροές εργασίας grep με προληπτική παρακολούθηση.

Όχι. Το LogExpert είναι ένα δημοφιλές δωρεάν Windows πρόγραμμα προβολής με παρακολούθηση ουράς και φιλτράρισμα, αλλά οι εναλλακτικές λύσεις περιλαμβάνουν τα BareTail, glogg, Klogg και πλήρεις πλατφόρμες όπως το Splunk, Graylogή τη στοίβα ELK για κεντρική ανάλυση σε πολλά μηχανήματα.

Συνοψίστε αυτήν την ανάρτηση με: