PHP Symfony Sentry Logger

Логирование в Sentry.io

Создание аккаунта на Sentry.io

Переходим на sentry.io и регистрируем аккаунт любым удобным способом.

Sentry signup form

Запоняем поля

Sentry onboarding

Создаем проект symfony. После создания проекта Вам выведут dsn для подключения в проекте.

Sentry create project

Регистрация проекта закончена. Вы увидите похожую страницу.

Sentry dashboard

В настройках аккаунта можно выбрать русский язык.

Добавляем модуль логирования в проект

Добавляем модуль в проект

composer require sentry/sentry-symfony

Во время установки пакета, может возникнуть ошибка: Uncaught Error: Class 'Nyholm\Psr7\Factory\Psr17Factory' not found .

Решил выключением psr_message

sensio_framework_extra:
  psr_message:
    enabled: false

Если Вы используете Flex plugin, то все конфиги создадутся автоматически. Если нет, то добавьте конфиг в config/packages/prod/sentry.yaml :

sentry:
  dsn: '%env(SENTRY_DSN)%' # Обязательный параметр
  ## Не обязательные параметры
  register_error_listener: true
    options:
      attach_stacktrace: true
      before_breadcrumb: "@sentry.callback.before_breadcrumb"
      before_send: "@sentry.callback.before_send"
      capture_silenced_errors: false
      context_lines: 5
      default_integrations: true
      enable_compression: true
      environment: "%kernel.environment%"
      error_types: "E_ALL & ~E_NOTICE"
      http_proxy: "10.0.0.12:3456"
      in_app_exclude:
        - "%kernel.cache_dir%"
        - "%kernel.project_dir%/vendor"
      integrations:
        - "@sentry.integration.my_custom_integration"
      logger: "php"
      max_breadcrumbs: 50
      max_value_length: 2048
      prefixes:
        - "/local_dir/"
      project_root: "%kernel.project_dir%"
      release: "abcde12345"
      sample_rate: 1
      send_attempts: 3
      send_default_pii: true
      server_name: "www.example.com"
      tags:
        tag1: "value1"
        tag2: "value2"
    listener_priorities:
      request: 1
      subrequest: 1
      console: 1

В config/bundles.php :

return [
    Sentry\SentryBundle\SentryBundle::class => ['all' => true],
];

Для проверки доступа к sentry из проекта можно воспользоваться тестовой командой:

php bin/console sentry:test

Ответ на тестовый запрос: Message sent successfully with ID 02eeb70c274f43c9b3f788be22712d97

Подробная документация

Использование в monolog

Добавляем обработчик:

monolog:
  handlers:
    sentry:
      type: sentry
      level: !php/const Monolog\Logger::ERROR
      hub_id: Sentry\State\HubInterface

Интеграция с gitlab

Чтобы настроить GitLab с Sentry, вам нужно будет создать приложение Sentry в вашем экземпляре GitLab.

gitlab apps

Переходим в настройки организации, в раздел integrations (пример ссылки https://sentry.io/settings/backloger/integrations/) и добавляем gitlab.

Заполняем форму

sentry form

Интеграция настроена. Теперь при пуше в ветку, sentry узнает какие ошибки были исправлены и автоматически их закроет. Например, если в комментарии коммита добавить BACKLOGER-1K (например, Fix BACKLOGER-1K), то sentry закроет ошибку.

Все действия по багам отображаются во вкладке Activity

Авторизуйтесь, что бы оставить комментарий!