GOOD SHELL MAS BOY
Server: Apache/2.4.52 (Ubuntu)
System: Linux vmi1836763.contaboserver.net 5.15.0-130-generic #140-Ubuntu SMP Wed Dec 18 17:59:53 UTC 2024 x86_64
User: www-data (33)
PHP: 8.4.10
Disabled: NONE
Upload Files
File: /var/www/html/vendor/sentry/sentry/src/Serializer/EnvelopItems/LogsItem.php
<?php

declare(strict_types=1);

namespace Sentry\Serializer\EnvelopItems;

use Sentry\Attributes\Attribute;
use Sentry\Event;
use Sentry\EventType;
use Sentry\Logs\Log;
use Sentry\Util\JSON;

/**
 * @internal
 */
class LogsItem implements EnvelopeItemInterface
{
    public static function toEnvelopeItem(Event $event): string
    {
        $logs = $event->getLogs();

        $header = [
            'type' => (string) EventType::logs(),
            'item_count' => \count($logs),
            'content_type' => 'application/vnd.sentry.items.log+json',
        ];

        return \sprintf(
            "%s\n%s",
            JSON::encode($header),
            JSON::encode([
                'items' => array_map(static function (Log $log): array {
                    return [
                        'timestamp' => $log->getTimestamp(),
                        'trace_id' => $log->getTraceId(),
                        'level' => (string) $log->getLevel(),
                        'body' => $log->getBody(),
                        'attributes' => array_map(static function (Attribute $attribute): array {
                            return [
                                'type' => $attribute->getType(),
                                'value' => $attribute->getValue(),
                            ];
                        }, $log->attributes()->all()),
                    ];
                }, $logs),
            ])
        );
    }
}