Günlük Tutucu (Logger) - muhametsafak/phpxi Wiki

Original URL: https://github.com/muhametsafak/phpxi/wiki/Günlük-Tutucu-(Logger)

PHPXI, projenizde kolay ve basit şekilde günlük (log) tutmanızı sağlayacak bir kütüphane (Logger) içerir.

Bu kütüphaneye model ve kontrolcü üzerinde $this->logger ile erişebilirsiniz.

Log Tipleri

PSR-3 standartlarını göz önünde bulundurarak 7 farklı türde günlük (log) tutmanız mümkündür. Bunlar sırasıyla; emergency, alert, critical, error, warning, notice ve debug dır.

Dosyalar nerede saklanır? Log dosyaları /PHPXI/WEIGHT/Logs/ dizininde depolanır. Her bir log tipi kendi adı ile başlayan ve oluşturulduğu tarih ile devam eden .log uzantılı bir dosyada tutulur. Örneğin; 28 Ocak 2021 tarihli warning log dosyasının tam adı şöyle olmalıdır; warning_20210128.log

Log Tutma

Log tutmak için Logger kütüphanesinin log() metodu kullanılır.

public function log(string $level, string $message, array $context = array()): void

$level

String türünde tutulacak log (günlük) seviyesini ifade eder. PHPXI'de kullanabileceğiniz 8 farklı seviye vardır. Bunlar; system, emergency, alert, critical, error, warning, notice ve debug dır.

$message

String türünde log (günlük) mesajıdır.

$context

Log mesajı içerisinde değişken bir değer varsa bunların yerine geçecek ifadelerin belirtildiği dizi (array) tipindeki parametredir.

Örnek;

$this->logger->log("error", "Bir hata meydana geldi.");

yukarıdaki örnek error seviyesinde;

Bir hata meydana geldi.

şeklindeki ibareyi kaydedecektir.


Yer Tutucu ile örnek:

$this->logger->log(
    "error",
    "{tarih} tarihinde {user_name} kullanıcısı bir hataya sebep oldu!",
    array("tarih" => "14/05/2020 23:12:33", "user_name" => "ahmet")
);

yukarıdaki örnek error seviyesinde;

14/05/2020 23:12:33 tarihinde ahmet kullanıcısı bir hataya sebep oldu!

şeklindeki ibareyi kaydecektir.

Dikkat Edilmesi Gerekenler;

Ayrıca her hata seviyesinin kendi adını taşıyan bir metodu vardır. log() metodu yerine bu metotları da kullanmak mümkündür. Bu metotların yapı, tanım ve kullanım örneklerini aşağıda bulabilirsiniz.


Aşağıdaki tüm metotlarda yer tutucu kullanımı log() metodu ile benzer şekildedir.

Emergency

Acil durumları ifade eden seviyedir.

public function emergency(string $message, array $context = array()): void

Örnek:

$this->logger->emergency("Burada acil bir durum oluştu!");

Alert

Bildirimleri ifade eden seviyedir.

public function alert(string $message, array $context = array()): void

Örnek:

$this->logger->alert("Log dosyasına yazılacak metin");

Critical

Kritik durumları ifade eden seviyedir.

public function critical(string $message, array $context = array()): void

Örnek:

$this->logger->critical("Kritik durum oluştu!");

Error

Hataları ifade eden seviyedir.

public function error(string $message, array $context = array()): void

Örnek:

$this->logger->error("Bir hata meydana geldi");

Warning

Uyarıları ifade eden seviyedir.

public function warning(string $message, array $context = array()): void

Örnek:

$this->logger->warning("Log dosyasına yazılacak metin");

Notice

Notları ifade eden seviyedir.

public function notice(string $message, array $context = array()): void

Örnek:

$this->logger->notice("Log dosyasına yazılacak metin");

Debug

Hata ayıklama bildirimlerini ifade eden seviyedir.

public function debug(string $message, array $context = array()): void

Örnek:

$this->logger->debug("Log dosyasına yazılacak metin");