English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا الدليل، سنتعلم من خلال الأمثلة سجلات Java وكذلك مكوناتها المختلفة.
يسمح لنا Java بإنشاء وتسجيل رسائل السجلات والملفات من خلال عملية السجلات.
في Java، تحتاج إلى إطار العمل و API للسجلات. يحتوي Java على إطار العمل المدمج للسجلات في حزمة java.util.logging.
We can also use third-party frameworks (such as Log4j, Logback, etc.) for logging.
The following diagram shows the core components and specified process of the Java Logging API (java.util.logging).
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) | استخدام |
---|---|
SEVERE | Severe failure |
WARNING | Warning messages, potential issues |
INFO | Routine runtime information |
CONFIG | Configuration 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.
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، فإن مستوى سجله سيتم تيرقيته من الأب، وهكذا.
يقرر مرشح (إذا كان موجودًا) ما إذا كان يمكن توجيه سجل LogRecord هذا.
إذاسجل الذاكرةإذا كانت الشروط المحددة معينة، فإنها ستقوم بتحويل السجلات من السجل إلى معالج السجلات، ومن معالج السجلات إلى النظام الخارجي.
// تعيين filter // تعيين filter // الحصول على filter Filter filter = logger.getFilter();
سيستلم معالج سجلات أو البرنامج الإضافيسجل الذاكرةوإخراجها إلى أهداف متنوعة.
يقدم 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();
المعالج يمكن أن يستخدممزجليمكن استخدامسجل الذاكرةعنصرتنسيقللتحويل إلى سلسلة من النصوص، ثم نقوم بإخراجها إلى النظام الخارجي.
يحتوي Java SE على اثنين منمزجل:
برنامج التشكيل | استخدام |
---|---|
SimpleFormatter | تشكيل LogRecord كنص |
XMLFormatter | تشكيل LogRecord في شكل XML |
يمكننا استخدام الكود التالي لتشكيل معالج التشكيل:
// تشكيل كنص handler.setFormatter(new SimpleFormatter()); // تشكيل في شكل XML handler.setFormatter(new XMLFormatter());
إدارة السجلاتالمعلومات العالمية لالتتبع العنصر. إنه يقرأ ويحافظ على تكوين السجلات ومدخلات السجلات.
إدارة السجلات هي نموذج Singleton، مما يعني أن هناك تثبيت واحد فقط.
للحصول على مثيل إدارة السجلات، نستخدم الكود التالي:
LogManager manager = new LogManager();
هذه هي بعض المزايا لاستخدام سجلات Java.
مساعدة في مراقبة مسار البرنامج
مساعدة في القبض على أي أخطاء قد تحدث
تقديم الدعم لتشخيص المشاكل وتتبعها