Loglama

loglama (büyük resim için tıklayın)

Loglama

Loglama, bir uygulamanın çalışması sırasında gerçekleşen olayların veya işlemlerin kaydedilmesidir. Bu kayıtlar, yazılımın hata ayıklaması, performans izleme, güvenlik analizi ve geçmiş işlemleri anlamak için kullanılır.

Loglar, genellikle uygulamanın hangi adımlardan geçtiğini, oluşan hataları, uyarıları, önemli olayları veya diğer sistem bilgilerinin detaylarını içerir. Loglama, yazılım geliştirme ve işletim süreçlerinde hayati öneme sahiptir.

Loglama Yöntemleri

1. Yazılım İçerisinde Loglama

  • Loglar genellikle kodun içine gömülmüş yöntemler veya araçlar ile oluşturulur.
  • Hangi tür olayların ve seviyelerin (hata, bilgi, uyarı) loglanacağı belirlenir.

2. Dosya Tabanlı Loglama

  • Loglar, bir dosyaya yazılır.
  • Örnek: application.log veya error.log.

3. Konsol Loglama

  • Loglar, doğrudan konsola veya terminale yazdırılır.
  • Geliştirme ve hata ayıklama sırasında yaygın olarak kullanılır.

4. Veritabanı Loglama

  • Loglar, bir veritabanında saklanır.
  • Büyük projelerde, logların düzenli olarak analiz edilmesi gerekiyorsa kullanılır.

5. Uzaktan (Remote) Loglama

  • Loglar, merkezi bir log yönetim sistemi veya uzak bir sunucuya gönderilir.
  • Örnek: Elastic Stack (ELK), Splunk.

6. Bulut Tabanlı Loglama

  • Loglar bulut tabanlı hizmetlere gönderilir ve orada analiz edilir.
  • Örnek: AWS CloudWatch, Google Stackdriver, Azure Monitor.

Loglama Seviyeleri

Loglar genellikle farklı önem derecelerine göre kategorize edilir:

  1. TRACE: En düşük seviyedir. Kodun çok detaylı bir şekilde izlenmesi gerektiğinde kullanılır.
  2. DEBUG: Uygulamanın hata ayıklaması sırasında kullanılan detaylı bilgiler.
  3. INFO: Genel bilgilendirme mesajları.
  4. WARN: Potansiyel sorunlar hakkında uyarılar.
  5. ERROR: Hataları ve beklenmeyen durumları loglar.
  6. FATAL: Sistem veya uygulama kritik bir hatayla karşılaştığında kullanılır.

Loglama Yöntemleri ve Araçları

1. Java Loglama Framework'leri

  • Java.util.logging (JUL): Java'nın yerleşik loglama framework'üdür.
  • Log4j: Apache tarafından geliştirilen popüler bir loglama framework'ü.
  • SLF4J (Simple Logging Facade for Java): Çeşitli loglama framework'leri için bir ara yüz sağlar.
  • Logback: Modern ve performanslı bir loglama framework'ü.

2. Python Loglama Araçları

  • Python’un logging modülü, esnek bir loglama sistemi sunar.
  • Ek olarak, loguru gibi üçüncü taraf kütüphaneler de kullanılabilir.

3. .NET Loglama Framework'leri

  • Microsoft’un ILogger arabirimi, loglama için standart bir yöntem sunar.
  • NLog ve Serilog, .NET projelerinde yaygın olarak kullanılır.

4. Merkezi Loglama Araçları

  • Elastic Stack (ELK): Elasticsearch, Logstash ve Kibana'dan oluşan bir merkezi loglama sistemi.
  • Splunk: Güçlü bir log analizi ve görselleştirme aracı.
  • Graylog: Açık kaynaklı bir merkezi log yönetim sistemi.

5. Bulut Tabanlı Araçlar

  • AWS CloudWatch: Amazon Web Services'in loglama ve izleme aracı.
  • Google Cloud Logging: Google Cloud Platform tarafından sağlanan bir loglama çözümü.
  • Azure Monitor: Microsoft Azure’un loglama ve izleme platformu.

Loglama İçin İyi Uygulamalar

  1. Doğru Seviye Seçimi: Gereksiz yere TRACE veya DEBUG seviyesinde loglama yapmaktan kaçının.
  2. Gizlilik: Loglarda kişisel veya hassas bilgileri saklamaktan kaçının.
  3. Format Standartları: Loglarınızda bir format standardı belirleyin. Örneğin, JSON formatı.
  4. Merkezi Yönetim: Logları merkezi bir sistemde toplayarak analiz ve yönetimi kolaylaştırın.
  5. Döngüsel Loglama (Rolling Logs): Log dosyalarının boyutunu sınırlandırarak disk alanını verimli kullanın.

Java'da SLF4J ile Loglama

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

public class LoggingExample {

   private static final Logger logger = LoggerFactory.getLogger(LoggingExample.class);

   public static void main(String[] args) {

       logger.info("Application started.");

       try {

           int result = 10 / 0;

       } catch (Exception e) {

           logger.error("An error occurred: {}", e.getMessage());

       }

       logger.info("Application finished.");

   }

}

*Bu gönderi ve görsel chatgpt ile oluşturulmuştur.

omurs

Ö S, 30 Ağustos 2018 Perşembe 15:30 tarihinde kayıt oldu

Etiketler

Beğeni


Yıllara Göre Gönderiler








LombokLoglamaB2C (Business-to-Consumer)B2B (Business-to-Business)İçerik Yönetim Sistemi - CMS (Content Management System)Pagination (Sayfalama)Sanal Özel Ağ - VPN (Virtual Private Network)Cronjob (Zamanlanmış Görevler)Printer-YazıcıJava'daki İlkel Veri Tipleri ve Alabilecekleri DeğerlerBit & Byte ve Hafıza Boyutlarındaki Ölçüm BirimleriSanallaştırma (Virtualization)DNS KayıtlarıE-Fatura ve E-ArşivYazılım Lisans TürleriAudit (Denetim) Açık Kaynak (Open Source)Monitoring (İzleme)Sitemap & Robots.txtKilometretaşı (Milestone)BSMV (Banka ve Sigorta Muameleleri Vergisi)KKDF (Kaynak Kullanımı Destekleme Fonu)Siber Pazartesi (Cyber Monday)Black Friday (Kara Cuma)Hotlink.htaccessCryptoLockerMalwareTrojanWormDependency (Yazılım Geliştirme Sürecinde Paket Bağımlılığı)Configuration (Yazılım Geliştirme Sürecinde Yapılandırma)Yahoo ve Yahoo'nun Başarısızlık NedenleriArchiving (Yazılım Geliştirme Sürecinde Arşivleme)Görsel Dosya Türleri (Image Types)ReleaseVersioning & Tagging (Versiyonlama ve Etiketleme)BuildJob (Yazılım Geliştirme Sürecinde Görevler)SonarQubeCDATA (Character Data)Alan Adı Uzantıları (Domain Name Extensions)Regresyon Kara Kutu (Black-Box) TestBeyaz Kutu (White-box) TestGri Kutu (Grey-box) TestYazılım Geliştirme Sürecindeki Temel Test TürleriKod gözden geçirme (Code Review)Birim Testi (Unit Testing)Yazılım Sürecinde EntegrasyonJAR & WAREager & Lazy Fetch TypeMaskelemeKPI (Key Performance Indicator)KII (Key Impact Indicator)Projenin JAR Dosyasını Oluştur - JAR PathSunucu için Linux dağıtım SeçimiKonyteynerler (container technologies)Runtime & Compile Time (Çalışma ve Derleme Zamanı)@Anotasyonlar (@Annotations)