Apa itu Log4j?
Log4j adalah rangka kerja pembalakan cepat (fleksibel dan boleh dipercayai (APIS) yang ditulis di Jawa yang dikembangkan pada awal tahun 1996. Ia diedarkan di bawah Lesen Perisian Apache. Log4J telah dibawa ke Bahasa C, C ++, C #, Perl, Python, Ruby dan Eiffel. Ini adalah alat yang digunakan untuk projek Automasi Selenium skala kecil hingga besar.
Mengapa menggunakan Log4j?
- Ia adalah sumber terbuka
- Dengan Log4j, adalah mungkin untuk menyimpan perincian aliran Automasi Selenium kami dalam fail atau pangkalan data
- Log4j digunakan untuk projek besar dan kecil
- Di Log4j, kami menggunakan pernyataan log dan bukannya pernyataan SOPL dalam kod untuk mengetahui status projek semasa ia dijalankan
Log4j mempunyai tiga komponen utama
- Pembalak : Ia bertanggungjawab untuk mencatat maklumat. Untuk melaksanakan pembalak ke dalam projek berikut langkah-langkah perlu dilakukan -
- Buat contoh untuk kelas logger : Kelas logger adalah utiliti berasaskan Java yang telah menggunakan semua kaedah generik yang telah dilaksanakan untuk menggunakan log4j
- Tentukan tahap Log4j : Terutama terdapat lima jenis tahap log
- Semua - Tahap pembalakan ini akan mencatat semuanya (menghidupkan semua log)
- DEBUG - mencetak maklumat penyahpepijatan dan sangat membantu dalam peringkat pembangunan
- INFO - mencetak mesej maklumat yang menyoroti kemajuan aplikasi
- PERINGATAN - mencetak maklumat mengenai tingkah laku sistem yang salah dan tidak dijangka.
- RALAT - mencetak mesej ralat yang mungkin membenarkan sistem diteruskan
- FATAL - maklumat kritikal sistem cetak yang menyebabkan aplikasi rosak
- MATI - Tiada pembalakan
- Appenders : Ia digunakan untuk menghantar LogEvents ke destinasi mereka. Ia memutuskan apa yang akan berlaku dengan maklumat log. Dengan kata mudah, ia digunakan untuk menulis log dalam fail. Berikut adalah beberapa jenis Appenders
- ConsoleAppender log ke output standard
- Appender fail mencetak log ke beberapa fail
- Melekatkan pelekat fail ke fail dengan ukuran maksimum
Catatan: Dalam sifat log4j kita boleh memanggil appender dengan nama apa pun. Terdapat pelengkap lain juga tetapi kami akan menghadkan sebilangan kecil ini.
- Susun atur : Ia bertanggungjawab untuk memformat maklumat pembalakan dengan gaya yang berbeza.
Kelas Logger menyediakan kaedah yang berbeza untuk menangani aktiviti pembalakan. Ini menyediakan dua kaedah statik untuk mendapatkan Objek Logger.
LogRate statik getRootLogger ()LogLogger statik awam getLogger (String name)
Bagaimana log4j dikonfigurasi?
Untuk mengkonfigurasi log4j kita harus memutuskan appender yang akan dilaksanakan. Oleh itu, parameter pelengkap akan ditetapkan.
- Kami akan menggunakan tahap DEBUG dan RollingFileAppender
- Kami akan melakukan dua konfigurasi atau log,
- Pertama: root logger, yang akan menulis semua log yang dihasilkan sistem dalam nama fail iaitu Selenium.logs
- Kedua: Akan menulis maklumat yang dihasilkan oleh perintah manual dalam kod ke dalam nama fail- Manual.logs
- Susun atur akan menjadi PatternLayout
#Root logger
log4j.rootLogger = DEBUG, faillog4j.appender.file = org.apache.log4j.RollingFileAppenderlog4j.appender.file.File = D: \\ Guru99 \\ src \\ Selenium.logslog4j.appender.file.maxFileSize = 900KBlog4j.appender.file.maxBackupIndex = 5log4j.appender.file.layout = org.apache.log4j.PatternLayoutlog4j.appender.file.layout.ConversionPattern =% d {ABSOLUTE}% 5p% c {1} :% L -% m% nlog4j.appender.file.Append = false
# Log Permohonan
log4j.logger.devpinoyLogger = DEBUG, dest1log4j.appender.dest1 = org.apache.log4j.RollingFileAppenderlog4j.appender.dest1.maxFileSize = 900KBlog4j.appender.dest1.maxBackupIndex = 6log4j.appender.dest1.layout = org.apache.log4j.PatternLayoutlog4j.appender.dest1.layout.ConversionPattern =% d {dd / MM / yyyy HH: mm: ss}% c% m% nlog4j.appender.dest1.File = D: \\ Guru99 \\ src \\ Manual.loglog4j.appender.dest1.Append = false
Dalam Contoh di atas, kami telah mengkonfigurasi log4j untuk log masuk dua fail berbeza yang dinamakan sebagai Selenium.log dan Manual.log.
- file dan dest1 adalah dua pengecam.
- "File" digunakan untuk memberikan nama fail di mana log akan disimpan
- "maxFileSize" digunakan untuk mengkonfigurasi ukuran maksimum fail log. Apabila fail mencapai ukuran ini, fail baru akan dibuat dengan nama yang sama dan nama fail lama akan ditambahkan sebagai Indeks padanya.
- "maxBackupIndex" digunakan untuk mengkonfigurasi jumlah maksimum fail untuk dijadikan sandaran.
- "layout" digunakan untuk mengatur format fail log.
- "Append" digunakan untuk mengatur fungsi append. Jika disetel ke false, setiap kali fail baru akan dibuat dan bukannya fail lama akan digunakan untuk log
Bagaimana log4j digunakan dalam skrip?
Dalam kod, kami telah menggunakan "log" sebagai pemboleh ubah rujukan yang merujuk kaedah getLogger dari Logger Class
Log logger = Logger.getLogger ("devpinoyLogger");
Gunakan pemboleh ubah rujukan "log" dan kaedah debug untuk mencatat maklumat yang kita mahukan.
log.debug ("- maklumat--");
Apa itu alat LogExpert?
- Alat LogExpert adalah alat untuk Windows yang dikembangkan untuk menyesuaikan log
- Ia adalah pemapar log sumber percuma dan terbuka.
- Ini adalah alat analisis log dengan pelbagai ciri seperti mencari, menyaring, menanda buku dan menyoroti log
- Dalam log alat ini, fail akan dikemas kini secara automatik apabila dibuka
- Dalam alat ini, kita dapat membuka banyak fail log dalam tab yang berbeza
- Kami juga boleh memberikan komen pada penanda buku, dan ada kunci jalan pintas untuk menavigasi di antara penanda buku yang berbeza. Kami juga dapat melihat senarai penanda buku yang lengkap dan menavigasi dari sana
- Jalan pintas alat diberikan dalam fail bantuan sehingga dapat dirujuk ke alat.
Langkah menggunakan Log4j dengan Selenium
Langkah 1) Di Eclipse buat projek baru dengan nama log4j_demo
Langkah 2) Klik kanan pada src -> Build Path -> Configure Build Path
Langkah 2) Klik pada Perpustakaan dan Tambah Perpustakaan Log4J. Anda boleh memuat turunnya dari https://logging.apache.org/log4j/1.2/download.html
Langkah 3) Buat fail baru. Fail ini akan merangkumi semua konfigurasi log4j
- Klik kanan pada src -> Baru -> Lain -> Umum -> Fail
- Beri nama fail sebagai "log4j.properties"
- Klik Selesai
Buat dua fail lagi dan beri mereka nama seperti Selenium.log dan Manual.log. Fail-fail ini akan mengandungi semua log yang dibuat oleh sistem dan pernyataan yang dicatat secara manual
Langkah 4) Dalam log4j.properties menyalin keseluruhan konfigurasi.
Langkah 5) Buat kelas utama:
- Klik kanan pada pakej lalai -> Baru -> Kelas
- Beri nama kelas dan klik selesai
Langkah 6) Salin kod berikut ke kelas utama
import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;import org.apache.log4j.Logger;LoggingDemo kelas awam {/ *** @param berpendapat* /utama kekosongan statik awam (String [] args) {// TODO Kaedah penjanaan automatikPemacu WebDriver = FirefoxDriver baru ();Log logger = Logger.getLogger ("devpinoyLogger");driver.get ("http://healthunify.com/bmicalculator/");log.debug ("membuka webiste");driver.manage (). timeout (). secara implisitWait (20, TimeUnit.SECONDS);log.debug ("memikat berat");driver.findElement (By.name ("wg")). sendKeys ("87");log.debug ("memilih kilogram");driver.findElement (By.name ("opt1")). sendKeys ("kilogram");log.debug ("memilih ketinggian dalam kaki");driver.findElement (By.name ("opt2")). sendKeys ("5");log.debug ("memilih tinggi dalam inci");driver.findElement (By.name ("opt3")). sendKeys ("10");log.debug ("Mengklik mengira");driver.findElement (By.name ("cc")). klik ();log.debug ("Mendapatkan nilai SIUnit");Rentetan SIUnit = driver.findElement (By.name ("si")). GetAttribute ("nilai");log.debug ("Mendapatkan nilai USUnit");Rentetan USUnit = driver.findElement (By.name ("us")). GetAttribute ("nilai");log.debug ("Mendapatkan nilai UKUnit");Rentetan UKUnit = driver.findElement (By.name ("uk")). GetAttribute ("nilai");log.debug ("Mendapatkan keterangan keseluruhan");String note = driver.findElement (By.name ("desc")). GetAttribute ("nilai");System.out.println ("SIUnit =" + SIUnit);System.out.println ("USUnit =" + USUnit);System.out.println ("UKUnit =" + UKUnit);System.out.println ("note =" + note);driver.quit ();}}
Dalam kod di atas, kami melayari http://healthunify.com/bmicalculator/ dan mengesahkan kalkulator BMI. Berat yang dimasukkan ialah 87KG dan tingginya 5 Kaki 10 inci. Skrip memeriksa output di unit SE, AS dan UK.
Dengan menggunakan Logger.getLogger ("devpinoyLogger") kami membuat log peringkat sistem
Dengan menggunakan kaedah log.debug kami menyimpan data ke dalam Manual.log
Langkah 7) Jalankan skrip. Buka lokasi log Manual dan Selenium untuk memeriksa data pembalakan.
Bagaimana alat LogExpert dapat digunakan untuk menganalisis log
- Muat turun alat dari http://logexpert.codeplex.com/. Pergi ke folder muat turun LogExpert
- Buka LogExpert.exe
- Klik pada Fail -> Buka dan Jelajah ke jalan di mana fail Manual.log dan Selenium.log disimpan. Pilih fail
- Pilih pilihan "Ikut ekor"
Memilih pilihan follow tail membolehkan tailing log yang bermaksud LogExpert mengemas kini fail log secara automatik ketika skrip dalam fasa pelaksanaan. Sekiranya kita menggunakan editor lain seperti notepad maka kita harus menutup dan membuka semula fail itu berulang kali untuk mengemas kini log. Tetapi dengan ExpertTool dalam Follow Tail Mode ini tidak diperlukan.
Gambar berikut menunjukkan susun atur log
Dengan menggunakan alat LogExpert, seseorang dapat men-debug log yang dibuat oleh pemacu web selenium seperti pada alat ini setelah dapat
- cari teks dan ungkapan biasa,
- buat penanda buku dan komen mereka dan juga dapat menavigasi antara penanda buku yang tidak mungkin dilakukan pada alat lain,
- Tapis log dan cari julat teks dan juga dapat menerapkan penapis lain ke log yang disaring sebelumnya,
- Sorot baris yang berbeza berdasarkan beberapa perkataan tertentu.
Alat ini juga membantu membahagikan data ke lajur yang berbeza.