Новое в Symfony 4.3: Улучшено логирование HttpCache

Обратный прокси-сервер Symfony, предоставляемый функцией HttpCache, является кешем шлюза, написанным на PHP. Это не полнофункциональный обратный прокси-сервер, такой как Varnish, но он может обеспечить значительное повышение производительности без необходимости устанавливать, настраивать и обслуживать дополнительные приложения или службы. Вот почему некоторые проекты используют его даже в производстве.

В Symfony 4.3 добавили новые параметры конфигурации, чтобы улучшить ведение журнала ответов HttpCache. Во-первых, опция trace_level сообщает Symfony, какая информация о журнале должна быть включена в ответ через HTTP-заголовок X-Symfony-Cache:

// src/CacheKernel.php
namespace App;

use Symfony\Bundle\FrameworkBundle\HttpCache\HttpCache;

class CacheKernel extends HttpCache
{
    protected function getOptions()
    {
        return [
            // ...

            // 'none'  = log nothing
            // 'short' = log only the main request
            // 'full'  = log the main request and all the sub-requests
            // default value = 'full' if debug = true; 'none' otherwise
            'trace_level' => 'short',
        ];
    }
}

Зарегистрированное значение является кратким и готовым к машинной обработке (например, устаревшее/действительное/сохраненное). Если вы используете Apache, добавьте %{X-Symfony-Cache}o в директиву LogFormat, чтобы включить это значение в сгенерированные журналы.

Вариант использования этой функции — включить ее в рабочей среде и использовать инструмент для обработки сгенерированной информации журнала, чтобы найти самые медленные URL-адреса, те, которые требуют дополнительной настройки кэша и т. Д.

Если вы предпочитаете переименовывать HTTPзаголовок X-Symfony-Cache, используйте параметр trace_header:

protected function getOptions()
{
    return [
        // ...
        'trace_level' => 'short',
        'trace_header' => 'X-Cache-Info-Log',
    ];
}

Интересный факт: этот запрос на добавление добавляет первое использование PHP-функции array_key_first() в кодовой базе Symfony. Эта функция была введена в PHP 7.3, но если вы используете более раннюю версию PHP, компонент Polyfill PHP 7.3 предоставит вам эту функцию.

Комментариев нет

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *