Rumah > pembangunan bahagian belakang > tutorial php > PHP Master | Melaksanakan PSR-3 dengan LOG4PHP

PHP Master | Melaksanakan PSR-3 dengan LOG4PHP

Christopher Nolan
Lepaskan: 2025-02-24 08:51:14
asal
986 orang telah melayarinya

Melaksanakan Pembalakan PSR-3 dengan LOG4PHP: Panduan Praktikal

PHP Master | Implementing PSR-3 with log4php

Konsep Utama

Artikel ini menunjukkan cara melaksanakan piawaian pembalakan PSR-3 menggunakan LOG4PHP, rangka kerja pembalakan sumber terbuka yang fleksibel. PSR-3 menyediakan antara muka yang sama untuk perpustakaan pembalakan, meningkatkan interoperabilitas dan kebolehkerjaan. Konfigurasi LOG4PHP membolehkan penghalaan tahap log yang berbeza (debug, info, ralat, dan lain -lain) ke pelbagai destinasi output (fail, e -mel, dll.).

Menyediakan kebergantungan

Sebelum pengekodan, pasangkan kebergantungan yang diperlukan. Anda memerlukan antara muka PSR-3 dan rangka kerja LOG4PHP. Fail

seperti ini memudahkan proses: composer.json

{
    "require": {
        "psr/log": "dev-master",
        "apache/log4php": "2.3.0"
    }
}
Salin selepas log masuk

Mewujudkan Logger Psr-3 Compliant

Kelas Logger Custom ini menjembatani antara muka PSR-3 dan fungsi LOG4PHP, pemetaan tahap log PSR-3 ke setara LOG4PHP mereka:

<?php
require_once 'vendor/autoload.php';

use Psr\Log\LoggerInterface as PsrLogLoggerInterface;
use Log4php\Logger;

class MyLogger implements PsrLogLoggerInterface
{
    private $logger;

    public function __construct($loggerName = 'main', $configFile = null) {
        Logger::configure($configFile);
        $this->logger = Logger::getLogger($loggerName);
    }

    // ... (PSR-3 log level methods: emergency, alert, critical, error, warning, notice, info, debug) ...

    // Example method (others similar)
    public function error($message, array $context = array()) {
        $this->logger->error($this->interpolate($message, $context));
    }

    // ... (log() method and interpolate() helper function remain unchanged) ...
}
Salin selepas log masuk
Kelas ini mengendalikan lapan tahap log PSR-3, menerjemahkannya ke enam tahap LOG4PHP (pemetaan pelbagai tahap PSR-3 ke LOG4PHP's

di mana perlu). Fungsi fatal (diambil dari pelaksanaan contoh PSR-3) mengendalikan pembolehubah konteks dalam mesej log. interpolate()

Mengkonfigurasi log4php LOG4PHP menggunakan konfigurasi lalai, tetapi anda boleh menyesuaikannya dengan XML atau PHP. Fail konfigurasi XML (

) mungkin kelihatan seperti ini untuk log amaran dan ke atas ke fail:

config.xml

Untuk menggunakan konfigurasi ini, lulus laluan fail ke pembina
<configuration xmlns="http://logging.apache.org/log4php/">
  <appender name="myAppender" class="LoggerAppenderFile">
    <param name="file" value="myLog.log"/>
    <layout class="LoggerLayoutSimple"/>
  </appender>
  <root>
    <level value="WARN"/>
    <appender_ref ref="myAppender"/>
  </root>
</configuration>
Salin selepas log masuk
:

MyLogger

$logger = new MyLogger('main', 'config.xml');
$logger->debug('This debug message will be ignored.');
$logger->warn('This warning will be logged to myLog.log');
Salin selepas log masuk
Kesimpulan

Mengintegrasikan PSR-3 dengan LOG4PHP menyediakan penyelesaian pembalakan yang standard dan fleksibel. Keupayaan untuk mengarahkan tahap log yang berbeza ke output tertentu menjadikan aplikasi debug dan pemantauan dengan lebih mudah. Untuk butiran lanjut, rujuk Panduan Mula Pantas Log4Php dan standard PSR-3 pada GitHub.

Soalan -soalan yang sering ditanya (diubahsuai untuk kejelasan dan kesimpulan):

  • PSR-3 Kepentingan: PSR-3 menyeragamkan antara muka pembalakan, membolehkan pertukaran mudah perpustakaan pembalakan tanpa perubahan kod.

  • Bermula dengan LOG4PHP:
  • Konfigurasi appenders, susun atur, dan pembalak (XML, PHP, atau Fail Properties), kemudian buat contoh logger untuk log mesej.

  • pemasangan:
  • Muat turun dari perkhidmatan pembalakan Apache atau gunakan komposer ().

    Konfigurasi composer require apache/log4php

    :
  • Gunakan fail XML, PHP, atau Properties untuk menentukan appenders (destinasi output), susun atur (format mesej), dan pembalak (bernama entiti pembalakan).
  • Multiple Appenders: Ya, berikan pelbagai tambahan kepada logger untuk menghantar log ke pelbagai lokasi.

  • Tahap log: Gunakan debug, info, warn, error, dan fatal kaedah untuk tahap keparahan yang berbeza.

  • Pengendalian Pengecualian: Gunakan untuk log butiran pengecualian. LoggerThrowablePatternConverter

  • Integrasi Rangka Kerja: Bekerja dengan rangka kerja PSR-3 yang sesuai (Laravel, Symfony, dan lain-lain).

  • Penapisan: Gunakan julat tahap, perlawanan rentetan, atau penapis padanan logger untuk mengawal output.

  • pemformatan mesej: Gunakan susun atur untuk menyesuaikan format mesej log.

Atas ialah kandungan terperinci PHP Master | Melaksanakan PSR-3 dengan LOG4PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan