نكتب الآلاف من ملفات السجل في كل مرة

مرحبا الرفاق!


ماذا يحدث إذا قمت بضبط Spring Boot في أحد التطبيقات logging.level.root=TRACE؟


سيتم كتابة جميع السجلات في ملف واحد ، حيث سيكون هناك مجموعة من الفئات الصغيرة.


في أفضل الأحوال ، بمساعدة المساعدة ، sifting appenderيمكنك تقسيم معيار واحد كحد أقصى ("تمييز") - على سبيل المثال ، حسب اسم الدفق أو اسم الفصل. وحتى مع ذلك - سيكون هناك قابلية للتسجيل من شفرة المصدر ، والتي يجب أن تدعم قيم التمييز في "MDC".


توقف ، توقف ، توقف! نقوم بإزالة logbackوإضافة وبواسطة هذا التكوين البسيط نكتب في ملفات سجل منفصلة لكل فئة ومستوى من التسجيل - وحتى في أدلة منفصلة:


Bobbin.yml


destinations:
  - name: io.infinite.bobbin.config.FileDestinationConfig
    fileName: ("./LOGS/INFINITE/${className}/${level}/${className}_${level}_${date}.log")

وهذا هو ما يحدث:



تخيل الآن أنك تطلب من زميل SRE:


-      org.visa.api.Transfer
-     ?
-  ERROR 
- !  .

بالطبع ، يندفع كل شيء من الناحية المفاهيمية نحو ELK (جيدًا ، إما مفلطح أو غرافانا). ولكن لا يتم تكوينها دائمًا في كل مكان - ولا تزال ملفات السجل القديمة الجيدة ذات صلة في كثير من الأحيان.


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


سجلنا مقطع فيديو يوضح هذا المثال بالكامل ، ونوضح كيف يعمل في الديناميكيات:



استمتع بالمشاهدة!


: Java 8 11, Gradle


( — !). , 2020 . logback log4j2. API — , Google Flogger.


Gradle Maven .


— Open Source .
.


!


All Articles