php error_log не работа

Похоже, вы пытались копировать и вставлять разные коды вместе, не понимая этого по-настоящему:

  • функция adauga добавляет входные значения в массив dt2, но затем не расскажите таблицу для обновления.
  • Функция addData, которая успешно обновит диаграмму, вызывается только один раз и с неверными переменными (Chart - глобал Chart.js; kg - undefined, поскольку она локально ограничена функцией adauga ]).

Я переписал ваш код во фрагмент ниже. См. Аннотации кода для получения дополнительной информации.

// assign the return value from Chart() to a variable which we use for updating.
let chart = new Chart(document.getElementById('line-chart'), {
  type: 'line',
  data: {
    datasets: [{
      data: [],
      label: 'Asia',
      borderColor: '#8e5ea2',
      fill: false
    }]
  },
  options: {
    scales: {
      xAxes: [{
        // configure the x-axis as a time axis (this causes Chart.js to place the
        // values in chronological order).
        type: 'time',
        time: {
          unit: 'day'
        }
      }]
    },
    title: {
      display: true,
      text: 'World population per region (in millions)'
    }
  }
});

// bind to the click event of the button element.
document.getElementById('adauga').addEventListener('click', function() {
  let dt = document.getElementById('dt').value,
    kg = parseInt(document.getElementById('kg').value); // Chart.js requires a number not a string!

  if (dt && (kg || kg == 0)) { // basic validity check.
    // add the datapoint using the object format.
    // see: https://www.chartjs.org/docs/latest/axes/cartesian/time.html#input-data
    chart.data.datasets[0].data.push({
      x: dt,
      y: kg
    });
    chart.update();
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.3/Chart.bundle.min.js"></script>
<input type="number" name="" value="" id="kg">
<input type="date" name="" value="" id="dt">
<button type="button" name="button" id="adauga">Adauga</button>
<canvas id="line-chart" width="200" height="100"></canvas>

26
задан Anthony 23 March 2015 в 15:41
поделиться

8 ответов

В случае, если у кого-то еще есть проблемы с тем, чтобы его локальная среда разработки регистрировала ошибки, вот что исправило это для меня:

В окнах error_log должен быть установлен полный путь к журналу для error_log() на работу (error_log = c:\apache\php_errors.log). Однако, если error_log = php_errors.log без пути, php все равно сможет регистрировать ошибки запуска, такие как

PHP Startup: Unable to load dynamic library 'ext\php_mysqli.dll' - The specified module could not be found
9
ответ дан Alex M 28 November 2019 в 07:27
поделиться

Как сказал Брадим, проверьте, есть ли у вас права на запись в каталог, где находится журнал ошибок php для пользователя apache. Если вы создали файл журнала с письменными разрешениями, этого недостаточно, у каталога также должны быть они.

0
ответ дан Lukasz Frankowski 28 November 2019 в 07:27
поделиться

В моем случае на сервере разработки CentOS после полного yum update разрешение на / var / log / http было изменено на 700, а пользователь на «root», поэтому пользователь « apache 'не смог войти или написать в него. Он все еще мог записать в существующий файл /var/log/httpd/error.log , но не смог создать новый файл, так как я использую файлы журнала с суффиксом даты. Выполнение команды

chown apache /var/log/httpd

решило проблему.

1
ответ дан Alex M 28 November 2019 в 07:27
поделиться

Если установлена ​​директива error_log, файл будет использоваться для записи ошибок php, если он не установлен, ошибки будут записываться в журнал Apache. Взгляните на http://us3.php.net/manual/en/errorfunc.configuration.php#ini.error-log .

Файл error_log и каталог, в котором он находится, должен быть доступен для записи пользователю, под которым работает Apache. Если файл не создается, возможно, это связано с проблемой разрешений.

Я не знаю наверняка, почему Apache будет зависать от вас, но я предполагаю, что это какая-то проблема с разрешениями.

4
ответ дан bradym 28 November 2019 в 07:27
поделиться

Проблема, с которой я столкнулся, заключалась в том, что журнал ошибок, который я обозначил, был защищен от записи. Все мои настройки .htaccess были правильными, PHP просто не мог записать в журнал ошибок, потому что у него не было разрешений. Это исправило это для меня:

chmod 777 watermellon-app-errors.log

Очевидно, вы захотите изменить .log на любой файл, который вы используете для журнала.

7
ответ дан Thomas Keene 28 November 2019 в 07:27
поделиться

Убедитесь и также установите

display_errors = On

И попробуйте

 error_reporting(E_ALL);

в вашем коде. Часто я включаю сценарий конфигурации ошибок времени выполнения, который включает ошибки, когда я разрабатываю, и отключает их, когда я не работаю. Выглядит это примерно так:

if ($debugmode == 'on') {
    error_reporting(E_ALL); 
    ini_set("display_errors", 1);
}else { 
    error_reporting(0); 
    ini_set("display_errors", 0);
}

Надеюсь, это поможет.

** Я не правильно прочитал, вы хотите регистрировать ошибки вместо отображения, в этом случае ответ Хаоса - это то, что вы ищете.

-3
ответ дан 28 November 2019 в 07:27
поделиться

I don't understand why, but the error log is now working. Here is what I did. I gave up and commented back out the error_log directive and closed the ini file. I ran the script with the parse error to see of Apache would still crash and I got the PHP error in the log file. This is freaky because the ini file no longer has error_log enabled and my script is not using ini_set().

Does anyone have an explanation for this madness? Also, Apache no longer crashes.

1
ответ дан 28 November 2019 в 07:27
поделиться

Вам также необходимо установить log_errors = On в php.ini.

11
ответ дан 28 November 2019 в 07:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: