Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> java

Pencatatan Jawa

Pencatatan Java

Dalam tutorial ini, kita akan belajar tentang Java Logging dan berbagai komponennya dengan bantuan contoh.

Java memungkinkan kita membuat dan menangkap pesan dan file log melalui proses logging.

Di Java, logging membutuhkan kerangka kerja dan API. Java memiliki kerangka kerja logging bawaan di java.util.logging paket.

Kami juga dapat menggunakan kerangka kerja pihak ketiga seperti Log4j, Logback, dan banyak lagi untuk tujuan logging.


Komponen Java Logging

Gambar di bawah menunjukkan komponen inti dan alur kontrol Java Logging API (java.util.logging ).

1. Pencatat

Logger class menyediakan metode untuk logging. Kita dapat membuat instance objek dari Logger class dan memanggil metodenya untuk tujuan logging.

Mari kita ambil contoh.

Logger logger = Logger.getLogger("newLoggerName");

getLogger() metode Logger class digunakan untuk mencari atau membuat Logger baru . Argumen string mendefinisikan nama logger.

Di sini, ini membuat Logger baru objek atau mengembalikan Logger . yang ada dengan nama yang sama.

Ini adalah konvensi untuk mendefinisikan Logger setelah kelas saat ini menggunakan class.getName() .

Logger logger = Logger.getLogger(MyClass.class.getName());

Catatan: Metode ini akan membuang NullPointerException jika nama yang dikirimkan adalah null .

Setiap Logger memiliki tingkat yang menentukan pentingnya pesan log. Ada 7 level log dasar:

Tingkat Log (dalam urutan menurun) Gunakan
PARAH kegagalan serius
PERINGATAN pesan peringatan, kemungkinan masalah
INFO informasi waktu proses umum
CONFIG informasi konfigurasi
BAIK informasi pengembang umum (melacak pesan)
LEBIH BAIK informasi pengembang terperinci (melacak pesan)
TERBAIK informasi pengembang yang sangat mendetail (melacak pesan)
NONAKTIF matikan logging untuk semua level (jangan tangkap apa pun)
SEMUA aktifkan logging untuk semua level (tangkap semuanya)

Setiap level log memiliki nilai integer yang menentukan tingkat keparahannya kecuali untuk dua level log khusus OFF dan ALL .


Mencatat log pesan

Secara default, tiga level log teratas selalu dicatat. Untuk mengatur level yang berbeda, kita dapat menggunakan kode berikut:

logger.setLevel(Level.LogLevel);

// example
logger.setLevel(Level.FINE);

Dalam contoh ini, hanya level FINE dan level di atasnya diatur untuk dicatat. Semua pesan log lainnya dihapus.

Sekarang untuk mencatat pesan, kami menggunakan log() metode.

logger.log(Level.LogLevel, "log message");

// example
logger.log(Level.INFO, "This is INFO log level message");

Ada metode singkat untuk masuk pada level yang diinginkan.

logger.info( "This is INFO log level message");
logger.warning( "This is WARNING log level message");

Semua permintaan log yang telah melewati tingkat log yang ditetapkan kemudian diteruskan ke LogRecord .

Catatan: Jika level logger diatur ke null , levelnya diwarisi dari induknya dan seterusnya ke atas pohon.


2. Filter

Filter (jika ada) menentukan apakah LogRecord harus diteruskan atau tidak. Seperti namanya, ini memfilter pesan log menurut kriteria tertentu.

Sebuah Rekam Log hanya diteruskan dari logger ke penangan log dan dari penangan log ke sistem eksternal jika melewati kriteria yang ditentukan.

// set a filter
logger.setFilter(filter);

// get a filter
Filter filter = logger.getFilter();

3. Penangan(Penambah)

Handler log atau appender menerima LogRecord dan mengekspornya ke berbagai target.

Java SE menyediakan 5 pengendali bawaan:

Penangan Gunakan
StreamHandler menulis ke OutputStream
ConsoleHandler menulis ke konsol
FileHandler menulis ke file
SocketHandler menulis ke port TCP jarak jauh
MemoryHandler menulis ke memori

Handler dapat melewati LogRecord ke filter untuk menentukan kembali apakah dapat diteruskan ke sistem eksternal atau tidak.

Untuk menambahkan handler baru, kita menggunakan kode berikut:

logger.addHandler(handler);

// example
Handler handler = new ConsoleHandler();
logger.addHandler(handler);

Untuk menghapus handler, kami menggunakan kode berikut:

logger.removeHandler(handler);

// example
Handler handler = new ConsoleHandler();
logger.addHandler(handler);
logger.removeHandler(handler);

Logger dapat memiliki beberapa penangan. Untuk mendapatkan semua handler, kami menggunakan kode berikut:

Handler[] handlers = logger.getHandlers();

4. Pemformat

Handler juga dapat menggunakan Formatter untuk memformat LogRecord objek ke dalam string sebelum mengekspornya ke sistem eksternal.

Java SE memiliki dua Formater . bawaan :

Formater Gunakan
SimpleFormatter format LogRecord untuk merangkai
XMLFormatter format LogRecord ke bentuk XML

Kita dapat menggunakan kode berikut untuk memformat handler:

// formats to string form
handler.setFormatter(new SimpleFormatter());

// formats to XML form
handler.setFormatter(new XMLFormatter());

Pengelola Log

Pengelola Log objek melacak informasi logging global. Ia membaca dan memelihara konfigurasi logging dan instance logger.

Manajer log adalah singleton, yang berarti hanya satu instance yang dibuat.

Untuk mendapatkan instance manajer log, kami menggunakan kode berikut:

LogManager manager = new LogManager();

Keuntungan Logging

Berikut adalah beberapa keuntungan login di Java.

  • membantu memantau alur program
  • membantu menangkap kesalahan yang mungkin terjadi
  • menyediakan dukungan untuk diagnosis masalah dan debugging

java

  1. Operator Jawa
  2. Komentar Jawa
  3. Java untuk setiap Loop
  4. String Jawa
  5. Antarmuka Jawa
  6. Kelas Anonim Java
  7. Java mencoba-dengan-sumber daya
  8. Anotasi Jawa
  9. Pernyataan Jawa
  10. Vektor Jawa