PHP code example of open-telemetry / opentelemetry-logger-monolog

1. Go to this page and download the library: Download open-telemetry/opentelemetry-logger-monolog library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

open-telemetry / opentelemetry-logger-monolog example snippets


$loggerProvider = new \OpenTelemetry\SDK\Logs\LoggerProvider(/* params */);
$handler = new \OpenTelemetry\Contrib\Logs\Monolog\Handler(
    $loggerProvider,
    'info',
    true,
);

$logger = new \Monolog\Logger(
    'name',
    [$handler],
);
$logger->info('hello world');

$host = new stdClass();
$host->name = 'example.com';
$host->tcp = 80;
new Monolog\LogRecord(
    ...,
    context: [
        'foo' => 'bar',
        'baz' => 'bat',
    ],
    extra: [
        'host' => $host,
    ]
);

/**
 * becomes:
 *
 * OpenTelemetry\API\Logs\LogRecord (
 *     ...,
 *     attributes => array (
 *         context => array (
 *             foo => 'bar',
 *             baz => 'bat',
 *         )
 *         context.foo => 'bar'
 *         context.baz => 'bat'
 *         extra => array (
 *             host => array (
 *                 stdClass => array (
 *                     name => 'example.com'
 *                     tcp => 80
 *                 )
 *             )
 *         )
 *         extra.host => stdClass (
 *             name => 'example.com'
 *             tcp => 80
 *         )
 *     )
 * )
 */

new Monolog\LogRecord(
    ...,
    context: [
        'myapp.data.foo' => 'bar',
        'myapp.data.baz' => 'bat',
    ],
    extra: [
        'server.address' => 'example.com',
        'server.port' => 80,
    ]
);

/**
 * becomes:
 *
 * OpenTelemetry\API\Logs\LogRecord (
 *     ...,
 *     attributes => array (
 *         myapp.data.foo => 'bar'
 *         myapp.data.baz => 'bat'
 *         server.address => 'example.com'
 *         server.port => 80
 *      )
 * )
 */