Apa itu logger di Java dan mengapa anda menggunakannya?

Artikel ini tentang Logger in Java adalah panduan komprehensif mengenai Java logging API yang digunakan untuk penyelesaian log semasa membuat projek.

Pembalakan adalah ciri penting yang perlu dipertimbangkan oleh pembangun untuk mengesan kesalahan. , sebagai salah satu bahasa pengaturcaraan yang paling popular, dilengkapi dengan pendekatan yang dapat disesuaikan untuk log dengan menyediakan API pembalakan asas. Jadi, dalam artikel ini mengenai Logger di Java, saya akan membincangkan bagaimana boleh menggunakan ciri ini untuk mengaktifkan pembalakan di Java.



Topik berikut akan dibahas dalam artikel ini:



    1. Perlu untuk pembalakan
    2. Komponen Pembalakan
    3. Apa itu Logger?
    4. Appender atau Penangan
    5. Susun atur atau Pembentuk

Sebelum ini, kita masuk ke dalam log masuk java, marilah kita memahami keperluan pembalakan.

cara menyediakan php

Perlu untuk pembalakan

Semasa membina aplikasi, kami sering menghadapi kesilapan yang harus diselesaikan. Oleh itu, dengan bantuan log, kita dapat dengan mudah mendapatkan maklumat mengenai apa yang berlaku dalam aplikasi dengan catatan kesalahan dan keadaan yang tidak biasa. Sekarang, mungkin terlintas di fikiran anda bahawa, mengapa tidak menggunakan pernyataan System.out.print () di . Masalahnya dengan pernyataan ini adalah bahawa mesej log hanya akan dicetak pada konsol. Oleh itu, apabila anda menutup konsol, secara automatik, semua log akan hilang. Oleh itu, log tidak akan disimpan secara kekal, dan dipaparkan satu persatu, kerana ia adalah persekitaran utas tunggal.



Untuk mengelakkan masalah seperti itu, log masuk di Java dipermudah dengan bantuanAPI disediakan melaluijava.util.loggingpakej, danorg.apache.log4j. *pakej.

Komponen Pembalakan

Komponen pembalakan Java membantu pemaju membuat log, meneruskan log ke destinasi masing-masing dan mengekalkan format yang betul. Berikut adalah tiga komponen:

  • Pembalak - Bertanggungjawab untuk menangkap rekod log dan menyerahkannya ke Appender yang sesuai.
  • Appenders atau Penangan - Mereka bertanggungjawab untuk merakam peristiwa log ke destinasi. Appenders memformat acara dengan bantuan Layouts, sebelum mengirim output.
  • Susun atur atau Pembentuk Bentuk - Bertanggungjawab untuk menentukan bagaimana data kelihatan ketika ia muncul dalam entri log.

Anda boleh merujuk pada gambar di bawah untuk kerja ketiga-tiga komponen:



Komponen Pembalakan - Pembalak di Java - Edureka

Semasa aplikasi membuat panggilan log, komponen Logger mencatat peristiwa dalam LogRecord dan meneruskannya ke Appender yang sesuai. Kemudian ia membentuk catatan menggunakan Layout mengikut format yang diperlukan. Selain daripada ini, anda juga dapat menggunakan lebih dari satu Penapis untuk menentukan Appenders mana yang harus digunakan untuk acara.

Sekarang, mari kita memahami apa itu logger di Java secara mendalam.

Apa itu Logger di Java?

Pembalak di Java adalah objek yang memicu peristiwa log, Mereka dibuat dan dipanggil dalam kod aplikasi, di mana mereka menghasilkan Peristiwa Log sebelum meneruskannya ke komponen berikutnya yang merupakan Penambah. Anda boleh menggunakan pelbagai pembalak dalam satu kelas untuk bertindak balas terhadap pelbagai peristiwa atau menggunakan Pembalak dalam hierarki. Mereka biasanya dinamakan menggunakan ruang nama yang dipisahkan titik hirarki. Juga, semua nama Pembalak mesti berdasarkan kelas atau nama pakej komponen yang dicatat.

Selain daripada ini, setiap Pembalak menyimpan jejak nenek moyang terdekat yang ada di Log ruang nama dan juga mempunyai 'Level' yang berkaitan dengannya. Baiklah, saya akan membincangkan Pembalak di bahagian akhir artikel ini, tetapi sebelum itu, izinkan saya menunjukkan kepada anda cara membuat Pembalak di Jawa.

Buat Pembalak baru

Proses membuat Logger baru di Java cukup mudah. Anda mesti menggunakanLogger.getLogger ()kaedah. ThegetLogger () mengenal pasti nama Logger dan mengambil rentetan sebagai parameter. Oleh itu, jika Logger wujud sebelum itu, Logger itu dikembalikan, maka Logger baru akan dibuat.

Sintaks:

Logger logger statik = Logger.getLogger (SampleClass.class.getName ())

Di sini, SampleClass adalah nama kelas yang mana kita mendapat objek Logger.

Contoh:

Pelanggan kelas awam {logik akhir statik peribadi LOGGER = Logger.getLogger (Customer.class) awam tidak sah getCustomerDetails () {}}

Sekarang saya telah memberitahu anda cara membuat Logger di Java, mari kita lihat tahap yang berbeza yang terdapat dalam pembalakan.

Tahap Log

Tahap Log digunakan untuk mengkategorikan log mengikut keparahannya atau kesan terhadap kestabilan aplikasi. Theorg.apache.log4j. *pakej danjava.util.loggingkedua-duanya menyediakan tahap pembalakan yang berbeza. Mari kita perhatikan masing-masing satu persatu.

org.apache.log4j. *pakej menyediakan tahap berikut dalam urutan menurun:

  • MAUT
  • KESALAHAN
  • AMARAN
  • INFO
  • HUTANG

java.util.loggingpakej menyediakan tahap berikut dalam urutan menurun:

  • SELAMAT (TINGKAT TERTINGGI)
  • AMARAN
  • INFO
  • KONFIG
  • BAIK
  • SELESAI
  • TERBAIK (TAHAP TERENDAH)

Selain daripada itu, pakej di atas juga memberikan dua tahap tambahanSEMUAdanMATIdigunakan untuk mencatat semua mesej dan melumpuhkan pembalakan masing-masing.

Contoh log masuk Java menggunakanorg.apache.log4j. *pakej:

import org.apache.log4j.Logger kelas awam Pelanggan {static Logger logger = Logger.getLogger (Customer.class) public static void main (String [] args) {logger.error ('ERROR') logger.warn ('PERINGATAN' logger.fatal ('FATAL') logger.debug ('DEBUG') logger.info ('INFO') System.out.println ('Final Output')}}

Jadi jika output andaroot logger sebagai tahap WARN di kami log4j.properties fail, maka semua mesej ralat dengan keutamaan yang lebih tinggi daripada WARN akan dicetak seperti di bawah:

Anda juga dapat menetapkan level dengan menggunakan kaedah setLevel () darijava.util.loggingpakej seperti di bawah:

logger.setLevel (Level.WARNING)

Contoh log masuk Java menggunakanjava.util.loggingpakej:

pakej edureka import java.io.IOException import java.util.logging.Level import java.util.logging.Logger import java.util.logging. * class EdurekaLogger {private final static Logger LOGGER = Logger.getLogger (Logger.GLOBAL_LOGGER_NAME) awam void sampleLog () {LOGGER.log (Level.WARNING, 'Welcome to Edureka!')}} pelanggan kelas awam {public static void main (String [] args) {EdurekaLogger obj = EdurekaLogger baru () obj.sampleLog () LogManager slg = LogManager.getLogManager () Logger log = slg.getLogger (Logger.GLOBAL_LOGGER_NAME) log.log (Level.WARNING, 'Hai! Selamat datang dari Edureka')}}

Untuk membolehkan log masuk aplikasi anda menggunakanorg.apache.log4j. *pakej ataujava.util.loggingpakej, anda harus mengkonfigurasi fail sifat. Selanjutnya dalam artikel ini tentang Logger di Java, mari kita bincangkan fail sifat kedua-duanya.

Fail Properties Log4j dan Java Util Package

Contoh fail Properties Log4j:

# Dayakan Root logger option log4j.rootLogger = INFO, file, stdout # Lampirkan appenders untuk mencetak fail log4j.appender.file = org.apache.log4j.RollingFileAppender log4j.appender.file.File = E: loglogging.log log4j.appender file.MaxFileSize = 10MB log4j.appender.file.MaxBackupIndex = 5 log4j.appender.file.layout = org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern =% d {yyyy-MM-dd HH: mm : ss}% -5p% c {1}:% L -% m% n # Pasang appenders untuk mencetak pada konsol log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.out log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern =% d {yyyy-MM-dd HH: mm: ss}% -5p% c {1}:% L -% m% n
  • Fail sifat Log4j dibuat di dalam folder src projek.
  • log4j.appender.file = org.apache.log4j.RollingFileAppender -> Mencetak semua log dalam fail
  • log4j.appender.stdout = org.apache.log4j.ConsoleAppender -> Mencetak semua log di konsol
  • log4j.appender.file.File = D: loglogging.log -> Menentukan lokasi fail log
  • log4j.appender.file.MaxFileSize = 10MB -> Saiz maksimum fail log hingga 10MB
  • log4j.appender.file.MaxBackupIndex = 5 -> Mengehadkan bilangan fail sandaran kepada 5
  • log4j.appender.file.layout = org.apache.log4j.PatternLayout -> Menentukan corak di mana log akan dicetak ke fail log.
  • log4j.appender.file.layout.ConversionPattern =% d {yyyy-MM-dd HH: mm: ss}% -5p% c {1}:% L -% m% n -> Menetapkan corak penukaran lalai.

Contohnya Fail Hartanah Pakej Java Util

pengendali = java.util.logging.ConsoleHandler .level = PERINGATAN # Output akan disimpan di direktori lalai java.util.logging.FileHandler.pattern =% h / java% u.log java.util.logging.FileHandler.limit = 60000 java.util.logging.FileHandler.count = 1 java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter # Tahap log akan terhad kepada PERINGATAN dan ke atas. java.util.logging.ConsoleHandler.level = PERINGATAN java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

Di sini,

  • java.util.logging.FileHandler.pattern =% h / java% u.log -> Fail log akan ditulis keC: TEMPjava1.log
  • java.util.logging.FileHandler.limit = 50000 ->Jumlah maksimum yang ditulis oleh logger ke mana-mana satu fail dalam bait.
  • java.util.logging.FileHandler.count = 1 -> Menentukan bilangan fail output
  • java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter -> Menyebut penyusun yang digunakan untuk pemformatan. Di sini XML Formatter digunakan.
  • java.util.logging.ConsoleHandler.level = PERINGATAN -> Menetapkan tahap log lalai ke PERINGATAN
  • java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter ->MenentukanPemformatuntuk digunakan oleh semuaPengendali Konsol'S. Di sini, SimpleFormatter digunakan.

Peristiwa Pembalakan

Untuk log masuk acara , anda harus memastikan bahawa anda menetapkan tahap untuk memfailkan acara dengan mudah. Untuk menetapkan tahap dan menyebutkan mesej, anda boleh menggunakan kaedah berikut:

Kaedah 1:

logger.log (Level.INFO, 'Paparkan mesej')
Di sini, tahap adalah INFO dan mesej yang akan dicetak adalah 'Paparan Mesej'.

Kaedah 2:

logger.info ('Paparan mesej')

Untuk memastikan bahawa Logger di Java, hanya log peristiwa yang berada di atau di atas tahap INFO, anda boleh menggunakan setLevel () kaedah yang dibincangkan di atas.

Sekarang, setelah saya membincangkan cara menggunakan Logger di Java, mari kita bincangkan komponen seni bina Log4j seterusnya, iaitu Appenders.

Appender atau Penangan

Appender atau Pengendali bertanggungjawab untuk merakam peristiwa log ke destinasi. Setiap pembalak mempunyai akses ke beberapa pengendali dan menerima mesej log dari pembalak. Kemudian, Appenders menggunakan Formatters atau Layouts untuk memformat acara dan menghantarnya ke destinasi yang sesuai.

Appender boleh dimatikan menggunakan kaedah setLevel (Level.OFF). Dua pengendali paling standard dijava.util.loggingpakej adalah seperti berikut:

apa itu autoboxing di java
  • Pengendali Fail: Tuliskan mesej log ke fail
  • Pengendali Konsol: Menulis mesej log ke konsol

Untuk pemahaman anda yang lebih baik, saya telah menjelaskan beberapa Appenders di bahagian hartanah.

Susun atur atau Pembentuk

Susun atur Formatters digunakan untuk memformat dan menukar data dalam peristiwa log.Kerangka pembalakan menyediakan Tata Letak untuk HTML, XML, Syslog, JSON, teks biasa dan log lain.

  1. SimpleFormatter : Menghasilkan pesanan teks dengan maklumat asas.
  2. XMLFormatter : Menghasilkan mesej XML untuk log

Untuk pemahaman anda yang lebih baik, saya telah menerangkan beberapa Susun atur di bahagian hartanah.Dengan ini, kita sampai di akhir blog ini di 'Logger in Java'. Saya harap kalian jelas dengan apa yang telah diajarkan kepada anda dalam artikel ini.

Lihat oleh Edureka, sebuah syarikat pembelajaran dalam talian yang dipercayai dengan rangkaian lebih daripada 250,000 pelajar berpuas hati yang tersebar di seluruh dunia. Kursus latihan dan pensijilan Java J2EE dan SOA Edureka dirancang untuk pelajar dan profesional yang ingin menjadi Pembangun Java. Kursus ini dirancang untuk memberi Anda awal dalam pengaturcaraan Java dan melatih anda untuk konsep Java teras dan maju bersama dengan pelbagai kerangka kerja Java seperti Hibernate & Spring.

Ada soalan untuk kami? Sila sebutkan di bahagian komen blog 'Logger in Java' ini dan kami akan menghubungi anda secepat mungkin.