Əsas fikir
Hər qeydi diaqnostik sualla əlaqələndirin: hansı əməliyyat uğursuz oldu, hansı xidmət təsirləndi və nə vaxt baş verdi? Parol, token və lazımsız şəxsi məlumatı jurnala daxil etməyin.
Jurnal hansı suala cavab verir?
Tətbiq jurnalı proqramın işləyərkən yaratdığı hadisələri vaxt nişanı ilə saxlayır. Başlanma və dayanma, sorğunun nəticəsi, gözlənilməz xəta, xarici xidmətə qoşulma uğursuzluğu və konfiqurasiya dəyişikliyi fərqli araşdırma suallarına cavab verir. Əməliyyat sistemi və server qeydləri ümumi mühiti göstərir; tətbiq qeydi isə həmin tətbiqin hansı işi görməyə çalışdığını aydınlaşdıra bilər.
Əməliyyat
Sorğu, iş və ya inteqrasiyanın başlanması və nəticəsi.
Xəta
İstisna, uğursuz asılılıq və ya istifadəçiyə təsir edən nasazlıq.
Dəyişiklik
Buraxılış, konfiqurasiya və ya imtiyaz dəyişikliyinin vaxtı və aktoru.
Hadisə üçün lazım olan sahələri seçin
Sabit sahələr axtarış və müqayisəni asanlaşdırır. Adətən vaxt, səviyyə, xidmət və mühit adı, hadisə növü, nəticə, qısa mesaj, sorğu və ya trace identifikatoru, eləcə də təhlükəsiz olduqda xəta kodu faydalıdır. Xidmətlər arasında vaxtı müqayisə etmək üçün saatları sinxronlaşdırın və vaxt qurşağını aydın saxlayın. Hər qeyd üçün bütün mümkün konteksti toplamaq lazım deyil.
Vaxt və mənbə
UTC və ya aydın göstərilmiş vaxt qurşağı; xidmət, versiya və mühit.
Hadisə və nəticə
Sabit hadisə adı, nəticə və seçilmiş log səviyyəsi.
Korrelyasiya
Sorğu ID-si və varsa trace/span ID; identifikatorun özü sirr və ya hesab məlumatı olmamalıdır.
Səviyyələri eyni məna ilə tətbiq edin
Səviyyə qeydin nə qədər təcili diqqət tələb etdiyini göstərir, lakin adlar və dəqiq məna log kitabxanasından asılıdır. Komanda üçün qısa lüğət müəyyənləşdirin: DEBUG inkişaf zamanı əlavə təfərrüat, INFO normal mərhələ, WARN gözlənilməz amma davam edə bilən vəziyyət, ERROR əməliyyatı pozan xəta, CRITICAL/FATAL isə komponenti dayandıra bilən ağır nasazlıq kimi istifadə oluna bilər. Eyni problemə hər xidmətdə fərqli səviyyə vermək xəbərdarlıq qaydalarını zəiflədir.
DEBUG / TRACE
Ətraflı diaqnostika; işlək mühitdə həcmi və məxfi sahələri məhdudlaşdırın.
INFO / WARN
Normal gedişi və izlənməli, lakin uğursuzluq sayılmayan vəziyyəti bildirir.
ERROR / CRITICAL
Funksiyanın pozulması və daha geniş təsirə görə eskalasiyanı əsaslandırır.
Strukturlaşdırılmış qeydi oxunaqlı saxlayın
JSON kimi strukturlaşdırılmış format hər hadisəni sabit açarlarla təqdim edir; bu, mətn axtarışı ilə yanaşı sahələr üzrə filtr və korrelyasiyanı da mümkün edir. Sahə adları və tipləri xidmətlər arasında eyni qalsın. Mesajı qısa saxlayın, xətanın tipi və əməliyyat kontekstini ayrıca sahələrdə verin, stack trace-i isə uyğun hallarda tam saxlayın. JSONL bir sətirdə bir JSON obyektini saxlayan yayılmış ixrac formasıdır.
{"timestamp":"2026-10-09T08:30:00Z","level":"ERROR","service":"billing-api","event":"payment_authorization_failed","request_id":"req-7f21","error_code":"upstream_timeout"}
Jurnalda sir və lazımsız şəxsi məlumat saxlamayın
Sorğu mətni, URL parametrləri, kukilər, tokenlər, parollar və tam istifadəçi məlumatları qeyri-ixtiyari jurnala düşə bilər. Giriş nöqtəsində məxfi dəyərləri çıxarın və ya maskalayın; toplanan sahələri məqsədə uyğun minimumda saxlayın. Jurnal ötürülərkən və saxlanarkən girişə nəzarət edin, səlahiyyətləri məhdudlaşdırın və dəyişiklik izlərini qoruyun.
Bütün hadisələri yazmaq lazımdır?
Xeyr. Yüksək dəyərli əməliyyatları və araşdırma suallarını seçin; həddindən artıq səs-küy faydalı qeydləri gizlədə bilər.
Səviyyə adı bütün platformalarda eynidirmi?
Xeyr. Kitabxana və platformaların səviyyələri fərqlənir; öz semantikanızı və uyğunlaşdırma qaydanızı yazılı saxlayın.
