Apa itu logger di Java dan mengapa Anda menggunakannya?



Artikel tentang Logger di Java ini adalah panduan komprehensif tentang Java logging API yang digunakan untuk solusi logging saat membuat proyek.

Logging adalah fitur penting yang perlu diperhatikan oleh pengembang untuk melacak kembali kesalahan. , sebagai salah satu bahasa pemrograman paling populer, hadir dengan pendekatan logging yang dapat disesuaikan dengan menyediakan API logging dasar. Jadi, dalam artikel tentang Logger di Java ini, saya akan membahas caranya dapat menggunakan fitur ini untuk mengaktifkan logging yang dapat diperluas di Java.

Topik berikut akan dibahas dalam artikel ini:





    1. Perlu penebangan
    2. Komponen Logging
    3. Apa itu Logger?
    4. Penambah atau Penangan
    5. Tata Letak atau Pemformat

Sebelumnya, kita mendalami logging di java, mari kita pahami perlunya logging.

Perlu penebangan

Saat membangun aplikasi, kami sering menghadapi kesalahan yang harus di-debug. Jadi, dengan bantuan log, kita dapat dengan mudah mendapatkan informasi tentang apa yang terjadi di aplikasi dengan catatan kesalahan dan keadaan yang tidak biasa. Sekarang, mungkin terlintas dalam pikiran Anda bahwa, mengapa tidak menggunakan pernyataan System.out.print () di . Masalah dengan pernyataan ini adalah bahwa pesan log hanya akan dicetak di konsol. Jadi, setelah Anda menutup konsol, secara otomatis semua log akan hilang. Oleh karena itu, log tidak akan disimpan secara permanen, dan ditampilkan satu per satu, karena ini adalah lingkungan single-threaded.



Untuk menghindari masalah seperti itu, logging di Java disederhanakan dengan bantuan fileAPI disediakan melaluijava.util.loggingpaket, danorg.apache.log4j. *paket.

Komponen Logging

Komponen logging Java membantu pengembang untuk membuat log, meneruskan log ke tujuan masing-masing dan mempertahankan format yang tepat. Berikut adalah tiga komponen:

  • Penebang - Bertanggung jawab untuk menangkap catatan log dan meneruskannya ke Appender yang sesuai.
  • Penambah atau Penangan - Mereka bertanggung jawab untuk merekam peristiwa log ke suatu tujuan. Menambahkan acara format dengan bantuan Tata Letak, sebelum mengirim keluaran.
  • Tata Letak atau Pemformat - Bertanggung jawab untuk menentukan bagaimana data terlihat ketika muncul di entri log.

Anda dapat merujuk ke gambar di bawah ini untuk mengerjakan ketiga komponen:



Komponen Logging - Logger di Jawa - Edureka

Saat aplikasi membuat panggilan logging, komponen Logger mencatat kejadian di LogRecord dan meneruskannya ke Appender yang sesuai. Kemudian memformat record menggunakan Layout sesuai dengan format yang dibutuhkan. Selain itu, Anda juga dapat menggunakan lebih dari satu Filter untuk menentukan Appenders mana yang harus digunakan untuk acara.

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

Apa itu Logger di Java?

Logger di Java adalah objek yang memicu kejadian log, Mereka dibuat dan dipanggil dalam kode aplikasi, di mana mereka menghasilkan Kejadian Log sebelum meneruskannya ke komponen berikutnya yang merupakan Appender. Anda dapat menggunakan beberapa Logger dalam satu kelas untuk menanggapi berbagai peristiwa atau menggunakan Logger dalam hierarki. Mereka biasanya dinamai menggunakan namespace hierarki yang dipisahkan titik. Selain itu, semua nama Logger harus didasarkan pada kelas atau nama paket komponen yang dicatat.

Terlepas dari ini, setiap Logger melacak leluhur terdekat yang ada di file Log namespace dan juga memiliki 'Level' yang terkait dengannya. Nah, saya akan membahas tentang Logger di bagian akhir artikel ini, tetapi sebelum itu, izinkan saya menunjukkan cara membuat Logger di Java.

Buat Logger baru

Proses membuat Logger baru di Java cukup sederhana. Anda harus menggunakanLogger.getLogger ()metode. ItugetLogger () mengidentifikasi nama Logger dan mengambil string sebagai parameter. Jadi, jika Logger sudah ada sebelumnya, Logger itu dikembalikan, jika tidak, Logger baru akan dibuat.

Sintaksis:

logger Pencatat statis = Logger.getLogger (SampleClass.class.getName ())

Di sini, SampleClass adalah nama kelas yang kita dapatkan objek Loggernya.

Contoh:

kelas publik Pelanggan {private static final Logger LOGGER = Logger.getLogger (Customer.class) public void getCustomerDetails () {}}

Sekarang saya telah memberi tahu Anda cara membuat Logger di Java, mari kita lihat berbagai level yang tersedia di logging.

Tingkat Log

Level Log digunakan untuk mengkategorikan log berdasarkan tingkat keparahannya atau dampaknya pada stabilitas aplikasi. Ituorg.apache.log4j. *paket danjava.util.loggingkeduanya memberikan tingkat penebangan yang berbeda. Mari kita lihat satu per satu.

cara menulis kelas tunggal di java

org.apache.log4j. *package menyediakan level berikut dalam urutan menurun:

  • FATAL
  • KESALAHAN
  • MEMPERINGATKAN
  • INFO
  • DEBUG

java.util.loggingpackage menyediakan level berikut dalam urutan menurun:

  • PARAH (TINGKAT TERTINGGI)
  • PERINGATAN
  • INFO
  • KONFIGASI
  • BAIK
  • LEBIH BAIK
  • TERBAIK (TINGKAT TERENDAH)

Selain itu, paket di atas juga menyediakan dua level tambahanSEMUAdanMATIdigunakan untuk mencatat semua pesan dan menonaktifkan logging masing-masing.

Contoh Logging di Java menggunakanorg.apache.log4j. *paket:

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

Jadi jika keluaran Anda adalahroot logger sebagai WARN-level di kami log4j.properties file, maka semua pesan kesalahan dengan prioritas lebih tinggi dari WARN akan dicetak seperti di bawah ini:

Anda juga bisa menyetel level dengan menggunakan metode setLevel () darijava.util.loggingpaket seperti di bawah ini:

logger.setLevel (Level.WARNING)

Contoh Logging di Java menggunakanjava.util.loggingpaket:

paket 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) publik void sampleLog () {LOGGER.log (Level.WARNING, 'Selamat datang di Edureka!')}} kelas publik Pelanggan {public static void main (String [] args) {EdurekaLogger obj = new EdurekaLogger () obj.sampleLog () LogManager slg = LogManager.getLogManager () Logger log = slg.getLogger (Logger.GLOBAL_LOGGER_NAME) log.log (Level.WARNING, 'Hai! Selamat datang dari Edureka')}}

Untuk mengaktifkan proses masuk aplikasi Anda menggunakanorg.apache.log4j. *paket ataujava.util.loggingpaket, Anda harus mengkonfigurasi file properti. Selanjutnya di artikel ini tentang Logger di Java, mari kita bahas file properti keduanya.

File Properti Log4j dan Paket Util Java

Contoh file Properti Log4j:

# Aktifkan opsi Root logger log4j.rootLogger = INFO, file, stdout # Lampirkan appenders untuk mencetak file 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 # Lampirkan appenders untuk dicetak di 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
  • File properti Log4j dibuat di dalam folder src proyek.
  • log4j.appender.file = org.apache.log4j.RollingFileAppender -> Mencetak semua log dalam sebuah file
  • log4j.appender.stdout = org.apache.log4j.ConsoleAppender -> Mencetak semua log di konsol
  • log4j.appender.file.File = D: loglogging.log -> Menentukan lokasi file log
  • log4j.appender.file.MaxFileSize = 10MB -> Ukuran maksimum file log menjadi 10MB
  • log4j.appender.file.MaxBackupIndex = 5 -> Membatasi jumlah file cadangan menjadi 5
  • log4j.appender.file.layout = org.apache.log4j.PatternLayout -> Menentukan pola di mana log akan dicetak ke file log.
  • log4j.appender.file.layout.ConversionPattern =% d {yyyy-MM-dd HH: mm: ss}% -5p% c {1}:% L -% m% n -> Menyetel pola konversi default.

Sampel File Properti Paket Util Java

handlers = java.util.logging.ConsoleHandler .level = PERINGATAN # Output akan disimpan di direktori default 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 # Tingkat log akan dibatasi untuk PERINGATAN ke atas. java.util.logging.ConsoleHandler.level = PERINGATAN java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

Sini,

  • java.util.logging.FileHandler.pattern =% h / java% u.log -> File log akan ditulis keC: TEMPjava1.log
  • java.util.logging.FileHandler.limit = 50000 ->Jumlah maksimum yang ditulis logger ke salah satu file dalam byte.
  • java.util.logging.FileHandler.count = 1 -> Menentukan jumlah file keluaran
  • java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter -> Menyebut formatter yang digunakan untuk pemformatan. Di sini XML Formatter digunakan.
  • java.util.logging.ConsoleHandler.level = PERINGATAN -> Setel tingkat log default ke PERINGATAN
  • java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter ->MenentukanFormatteruntuk digunakan oleh semua orangConsoleHandlerS. Di sini, SimpleFormatter digunakan.

Peristiwa Pencatatan

Untuk masuk ke acara , Anda harus memastikan bahwa Anda menetapkan level untuk dengan mudah mengesampingkan acara. Untuk menetapkan level dan menyebutkan pesan, Anda dapat menggunakan metode di bawah ini:

Metode 1:

logger.log (Level.INFO, 'Tampilkan pesan')
Di sini level adalah INFO dan pesan yang akan dicetak adalah 'Display Message'.

Metode 2:

logger.info ('Menampilkan pesan')

Untuk memastikan bahwa Logger di Java, hanya mencatat peristiwa yang berada pada atau di atas level INFO, Anda dapat menggunakan setLevel () metode yang dibahas di atas.

apa itu paket di java

Sekarang, setelah saya membahas cara menggunakan Logger di Java, mari kita bahas komponen arsitektur Log4j berikutnya, yaitu Appenders.

Penambah atau Penangan

Penambah atau Penangan bertanggung jawab untuk merekam peristiwa log ke tujuan. Setiap logger memiliki akses ke beberapa penangan dan menerima pesan log dari logger. Kemudian, Appenders menggunakan Formatters atau Layouts untuk memformat acara dan mengirimkannya ke tujuan yang sesuai.

Appender dapat dimatikan menggunakan metode setLevel (Level.OFF). Dua penangan paling standar dijava.util.loggingpaket adalah sebagai berikut:

  • FileHandler: Tulis pesan log ke file
  • ConsoleHandler: Menulis pesan log ke konsol

Untuk, pemahaman Anda yang lebih baik, saya telah menjelaskan beberapa Penambah di bagian properti.

Tata Letak atau Pemformat

Tata letak Pemformat digunakan untuk memformat dan mengonversi data dalam peristiwa log.Kerangka kerja logging menyediakan Layout untuk HTML, XML, Syslog, JSON, teks biasa, dan log lainnya.

  1. SimpleFormatter : Menghasilkan pesan teks dengan informasi dasar.
  2. XMLFormatter : Menghasilkan pesan XML untuk log

Untuk pemahaman Anda yang lebih baik, saya telah menjelaskan beberapa Tata Letak di bagian properti.Dengan ini, kita sampai pada akhir blog ini tentang “Logger di Java”. Saya harap kalian jelas dengan apa yang telah diajarkan kepada Anda di artikel ini.

Lihat oleh Edureka, perusahaan pembelajaran online tepercaya dengan jaringan lebih dari 250.000 pelajar yang puas dan tersebar di seluruh dunia. Kursus pelatihan dan sertifikasi Java J2EE dan SOA Edureka dirancang untuk siswa dan profesional yang ingin menjadi Pengembang Java. Kursus ini dirancang untuk memberi Anda permulaan dalam pemrograman Java dan melatih Anda untuk konsep Java inti dan lanjutan bersama dengan berbagai kerangka kerja Java seperti Hibernate & Spring.

Ada pertanyaan untuk kami? Harap sebutkan di bagian komentar di blog 'Logger di Java' ini dan kami akan menghubungi Anda kembali secepatnya.