English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

تعليمات Java الأساسية

تحكم في العملية Java

مجموعات Java Array

Java موجه الأقران (I)

Java موجه الأقران (II)

Java موجه الأقران (III)

معالجة الاستثنائات Java

قائمة Java (List)

Java Queue (الصف)

مجموعات Java Map

مجموعات Java Set

إدخال/إخراج Java (I/O)

قراء/كتابة Java

مواضيع أخرى لـ Java

تسجيل Java (Logging)

في هذا الدليل، سنتعلم من خلال الأمثلة سجلات Java وكذلك مكوناتها المختلفة.

يسمح لنا Java بإنشاء وتسجيل رسائل السجلات والملفات من خلال عملية السجلات.

في Java، تحتاج إلى إطار العمل و API للسجلات. يحتوي Java على إطار العمل المدمج للسجلات في حزمة java.util.logging.

We can also use third-party frameworks (such as Log4j, Logback, etc.) for logging.

Java log components

The following diagram shows the core components and specified process of the Java Logging API (java.util.logging).

Java logging flowchart

1.Logger

The Logger class provides logging methods. We can instantiate an object from the Logger class and call its methods to log.

Let's take an example.

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

The getLogger() method of the Logger class is used to find or create a new Logger. The string parameter defines the name of the logger.

Here, this will create a new Logger object or return a Logger object with the same name.

By convention, a Logger is defined after the class.getName() in the current class.

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

ملاحظة:If the passed name is null, this method will throw a NullPointerException.

Each Logger has a level to determine the importance of log messages. There are 7 basic log levels:

Log levels (in descending order)استخدام
SEVERESevere failure
WARNING

Warning messages, potential issues

INFORoutine runtime information
CONFIGConfiguration information
FINE

Standard developer information (trace messages)

FINER

Detailed developer information (trace messages)

FINEST

Highly detailed developer information (trace messages)

OFF

Disable logging for all levels (do not capture any content)

ALL

Enable logging for all levels (capture all content)

Each log level has an integer value to determine its severity, except for the two special log levels OFF and ALL.

Log message

By default, the first three log levels are always recorded. To set other levels, we can use the following code:

logger.setLevel(Level.LogLevel);
// مثال
logger.setLevel(Level.FINE);

In this example, only Level.FINE and above levels are set for logging. Delete all other log messages.

Now we need to record a log message, we use the log() method.

logger.log(Level.LogLevel, "log message");
// مثال
logger.log(Level.INFO, "هذا رسالة سجل مستوى المعلومات");

هناك بعض الطرق السريعة لسجلات المستوى المطلوب.

logger.info("هذا رسالة سجل مستوى المعلومات");
logger.warning("هذا رسالة سجل مستوى التأكيد");

ثم، سيتم توجيه جميع طلبات السجلات التي تم تعيين مستوى السجل لها من خلال المستوى المحدد إلىسجل الذاكرة.

ملاحظة:إذا كان مستوى سجل سجل تم تعيينه على null، فإن مستوى سجله سيتم تيرقيته من الأب، وهكذا.

2. مرشح (مرشح)

يقرر مرشح (إذا كان موجودًا) ما إذا كان يمكن توجيه سجل LogRecord هذا.

إذاسجل الذاكرةإذا كانت الشروط المحددة معينة، فإنها ستقوم بتحويل السجلات من السجل إلى معالج السجلات، ومن معالج السجلات إلى النظام الخارجي.

// تعيين filter
// تعيين filter
// الحصول على filter
Filter filter = logger.getFilter();

3. معالج (مصدر输岀)

سيستلم معالج سجلات أو البرنامج الإضافيسجل الذاكرةوإخراجها إلى أهداف متنوعة.

يقدم Java SE خمس معالجات مدمجة:

المعالجاستخدام
معالج Stream

إلى OutputStream

معالج الشاشةإلى الشاشة
معالج ملفإلى ملف
معالج Socket

إلى ميناء TCP بعيد

معالج ذاكرةإلى ذاكرة

يمكن للمعالجسجل الذاكرةلتحديد ما إذا كان يمكن توجيهها إلى النظام الخارجي.

لإضافة معالج جديد، نستخدم الكود التالي:

logger.addHandler(handler);
// مثال
Handler handler = new ConsoleHandler();
logger.addHandler(handler);

لإزالة المعالج، نستخدم الكود التالي:

logger.removeHandler(handler);
// مثال
Handler handler = new ConsoleHandler();
logger.addHandler(handler);
logger.removeHandler(handler);

يمكن أن يكون للسجل عدة معالجات. للحصول على جميع المعالجات، نستخدم الكود التالي:

Handler[] handlers = logger.getHandlers();

4. تنسيق (مزجل)

المعالج يمكن أن يستخدممزجليمكن استخدامسجل الذاكرةعنصرتنسيقللتحويل إلى سلسلة من النصوص، ثم نقوم بإخراجها إلى النظام الخارجي.

يحتوي Java SE على اثنين منمزجل

برنامج التشكيلاستخدام
SimpleFormatter

تشكيل LogRecord كنص

XMLFormatter

تشكيل LogRecord في شكل XML

يمكننا استخدام الكود التالي لتشكيل معالج التشكيل:

// تشكيل كنص
handler.setFormatter(new SimpleFormatter());
// تشكيل في شكل XML
handler.setFormatter(new XMLFormatter());

إدارة السجلات

إدارة السجلاتالمعلومات العالمية لالتتبع العنصر. إنه يقرأ ويحافظ على تكوين السجلات ومدخلات السجلات.

إدارة السجلات هي نموذج Singleton، مما يعني أن هناك تثبيت واحد فقط.

للحصول على مثيل إدارة السجلات، نستخدم الكود التالي:

LogManager manager = new LogManager();

مزايا السجلات

هذه هي بعض المزايا لاستخدام سجلات Java.

  • مساعدة في مراقبة مسار البرنامج

  • مساعدة في القبض على أي أخطاء قد تحدث

  • تقديم الدعم لتشخيص المشاكل وتتبعها