Microsoft Azure - php


Microsoft Azure capture мои ошибки?

inserir a descrição da imagem aqui

в настоящее время Я обрабатывать ошибки, используя эту функцию:

<?php


/**
  Plugin Name: TESTE
  Description: testando log novo
  Version: 1.0
  Author: Vteste
  Author URI: teste

  -------
  LICENSE: This file is subject to the terms and conditions defined in
  file 'license.txt', which is part of Advanced Access Manager source package.
 *
 */

// error handler function
function myErrorHandler($errno, $errstr, $errfile, $errline)
{
    switch ($errno) {
    case E_USER_ERROR:
        $erro = "<b>My ERROR</b> [$errno] $errstr<br />\n";
        $erro += "  Fatal error on line $errline in file $errfile";
        $erro += ", PHP " . PHP_VERSION . " (" . PHP_OS . ")<br />\n";
        $erro += "Aborting...<br />\n";
        echo $erro;
        exit(1);
        break;

    case E_USER_WARNING:
        $erro = "<b>My WARNING</b> [$errno] $errstr\n";
        break;

    case E_USER_NOTICE:
        $erro = "<b>My NOTICE</b> [$errno] $errstr\n";
        break;

    default:
        $erro = "Unknown error type: [$errno] $errstr, linha:$errline, no arquivo $errfile";
            error_log($erro);
        break;
    }

    /* Don't execute PHP internal error handler */
    return true;
}

// function to test the error handling
function scale_by_log($vect, $scale)
{
    if (!is_numeric($scale) || $scale <= 0) {
        trigger_error("log(x) for x <= 0 is undefined, you used: scale = $scale", E_USER_ERROR);
    }

    if (!is_array($vect)) {
        trigger_error("Incorrect input vector, array of values expected", E_USER_WARNING);
        return null;
    }

    $temp = array();
    foreach($vect as $pos => $value) {
        if (!is_numeric($value)) {
            trigger_error("Value at position $pos is not a number, using 0 (zero)", E_USER_NOTICE);
            $value = 0;
        }
        $temp[$pos] = log($scale) * $value;
    }

    return $temp;
}

// set to the user defined error handler
$old_error_handler = set_error_handler("myErrorHandler");


?>

И я использую плагин Application Insights | Microsoft Azure, но он не собирает никакой ошибки, поэтому я хотел бы послать вручную, как бы это сделать?

Author: Marco Souza, 2017-06-09

1 answers

Я Не уверен, но я думаю, что это из-за:

return true;

В вашем handler set_error_handler имеет return true;, в результате вместо того, чтобы использовать handler внутренне он использует только твой "handler", то ведение ЖУРНАЛА внутреннего PHP не может получить ошибку, потому что вам это мешает.

Для решения удалите return true;, деталь сама Microsoft предоставляет API, чтобы использовать Application Insights, если вы используете composer можно установить так:

require: "microsoft/application-insights": "*"

Обратите Внимание, что необходимо с помощью PHP 5.4.2+

, После установки создайте ключ и добавьте этот код с вашим ключом:

$telemetryClient = new \ApplicationInsights\Telemetry_Client();
$telemetryClient->getContext()->setInstrumentationKey('DIGITE SUA CHAVE AQUI');
$telemetryClient->trackEvent('name of your event');
$telemetryClient->flush();
 2
Author: Guilherme Nascimento, 2017-06-09 19:14:32