summaryrefslogtreecommitdiff
path: root/vendor/open-telemetry/api/Behavior/Internal/LogWriter/Formatter.php
blob: 4cfd6f9d4c37baf1a1ba28b9eac79e7b26ace0e3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php

declare(strict_types=1);

namespace OpenTelemetry\API\Behavior\Internal\LogWriter;

class Formatter
{
    public static function format($level, string $message, array $context): string
    {
        $exception = (array_key_exists('exception', $context) && $context['exception'] instanceof \Throwable)
            ? $context['exception']
            : null;
        if ($exception) {
            $message = sprintf(
                'OpenTelemetry: [%s] %s [exception] %s%s%s',
                $level,
                $message,
                $exception->getMessage(),
                PHP_EOL,
                $exception->getTraceAsString()
            );
        } else {
            //get calling location, skipping over trait, formatter etc
            $caller = debug_backtrace()[3];
            $message = sprintf(
                'OpenTelemetry: [%s] %s in %s(%s)',
                $level,
                $message,
                $caller['file'],
                $caller['line'],
            );
        }

        return $message;
    }
}