design

Laravel’de Loglama: Hata Takibi ve Analizi

March 23, 2025

Merhaba arkadaşlar, bugün sizlere Laravel’de loglama (logging) konusunu ve hata takibi ile analizini nasıl yapabileceğinizi anlatacağım. Loglama, uygulamanızda gerçekleşen olayları ve hataları kaydetmek için kullanılan bir yöntemdir. Bu sayede, uygulamanızın performansını izleyebilir ve hataları kolayca tespit edebilirsiniz. Laravel, loglama işlemleri için güçlü bir yapı sunar. Gelin, bu konuları adım adım inceleyelim.


Loglama Nedir?

Loglama, uygulamanızda gerçekleşen olayları ve hataları kaydetme işlemidir. Bu kayıtlar, uygulamanızın performansını izlemek, hataları tespit etmek ve kullanıcı deneyimini iyileştirmek için kullanılır. Laravel, loglama işlemleri için Monolog kütüphanesini kullanır ve farklı log seviyeleri sunar.


Laravel’de Loglama Seviyeleri

Laravel, loglama işlemleri için farklı seviyeler sunar. Bu seviyeler, log kayıtlarının önemine göre sınıflandırılır. İşte bazı yaygın log seviyeleri:

  • emergency: Sistemin acil durumda olduğunu belirtir.
  • alert: Hemen müdahale edilmesi gereken durumları belirtir.
  • critical: Kritik hataları belirtir.
  • error: Genel hataları belirtir.
  • warning: Uyarıları belirtir.
  • notice: Önemli olayları belirtir.
  • info: Bilgilendirme mesajlarını belirtir.
  • debug: Debug amaçlı mesajları belirtir.


Laravel’de Loglama İşlemleri

Laravel’de loglama işlemleri, Log facade’u ile kolayca gerçekleştirilebilir. Örneğin, bir hata mesajını loglamak için:

use Illuminate\Support\Facades\Log;

public function index()
{
    try {
        // İşlemler
    } catch (\Exception $e) {
        Log::error('Bir hata oluştu: ' . $e->getMessage());
    }
}


Bu kod, bir hata oluştuğunda error seviyesinde bir log kaydı oluşturur.


Log Dosyalarını Yapılandırma

Laravel, log dosyalarını config/logging.php dosyasından yapılandırmanıza olanak tanır. Varsayılan olarak, loglar storage/logs dizinine kaydedilir. Ancak, farklı log kanalları kullanarak logları farklı yerlere kaydedebilirsiniz.


Örnek Log Yapılandırması:

'channels' => [
    'stack' => [
        'driver' => 'stack',
        'channels' => ['single', 'slack'],
    ],

    'single' => [
        'driver' => 'single',
        'path' => storage_path('logs/laravel.log'),
        'level' => 'debug',
    ],

    'slack' => [
        'driver' => 'slack',
        'url' => env('LOG_SLACK_WEBHOOK_URL'),
        'username' => 'Laravel Log',
        'emoji' => ':boom:',
        'level' => 'critical',
    ],
],


Bu yapılandırma, logları hem single kanalına (dosyaya) hem de slack kanalına (Slack’e) kaydeder.

Özel Log Kanalları Oluşturma

Eğer özel log kanalları oluşturmak istiyorsanız, config/logging.php dosyasında yeni kanallar tanımlayabilirsiniz. Örneğin, logları bir veritabanına kaydetmek için:


'database' => [
    'driver' => 'custom',
    'via' => App\Logging\DatabaseLogger::class,
    'level' => 'debug',
],


Ardından, DatabaseLogger sınıfını oluşturabilirsiniz:

namespace App\Logging;

use Monolog\Logger;
use Illuminate\Support\Facades\DB;

class DatabaseLogger
{
    public function __invoke(array $config)
    {
        return new Logger('database', [
            new DatabaseHandler($config),
        ]);
    }
}

class DatabaseHandler extends \Monolog\Handler\AbstractProcessingHandler
{
    protected function write(array $record): void
    {
        DB::table('logs')->insert([
            'message' => $record['message'],
            'level' => $record['level_name'],
            'context' => json_encode($record['context']),
            'created_at' => now(),
        ]);
    }
}

Bu kod, logları logs tablosuna kaydeder.


Logları Analiz Etme

Logları analiz etmek için farklı araçlar kullanabilirsiniz. Örneğin, LogstashElasticsearch ve Kibana gibi araçlarla logları toplayabilir, analiz edebilir ve görselleştirebilirsiniz.

Örnek Log Analizi:

  • Hata sıklığını analiz etmek.
  • Performans sorunlarını tespit etmek.
  • Kullanıcı davranışlarını incelemek.

Laravel’de Loglamanın Avantajları

  • Hata Takibi: Loglar sayesinde hataları kolayca tespit edebilirsiniz.
  • Performans İzleme: Uygulamanızın performansını izleyebilir ve iyileştirmeler yapabilirsiniz.
  • Güvenlik: Şüpheli aktiviteleri loglayarak güvenlik önlemleri alabilirsiniz.


Laravel’de loglama, uygulamanızın sağlıklı bir şekilde çalışmasını sağlamak için vazgeçilmez bir araçtır. Eğer hataları takip etmek, performansı izlemek ve kullanıcı deneyimini iyileştirmek istiyorsanız, loglama işlemlerini mutlaka kullanmalısınız. Bir sonraki yazımda, Laravel’de Package Development: Kendi Paketinizi Oluşturun konusuna değineceğim. Görüşmek üzere!

4 + 0 =