За последние 24 часа нас посетили 22366 программистов и 1637 роботов. Сейчас ищут 922 программиста ...

Error logs

Тема в разделе "Прочее", создана пользователем Kreker, 27 окт 2009.

  1. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    В общем получилось так, что в текущем проекте у нас нет никаких перехватчиков ошибок. Только встроенные. Но доступа к логам рабочего сервера у нас, естественно нет. Специфичность проекта, а именно - сплошной AJAX. усложняет отладку - PHP ошибки видны только в консоли фаербага, а Mysql-ошибки подавлены @. В результате SQL ошибки можно было определить только после ряда тестов и неверному поведению скрипта в них.
    Сначала как-то работал, но потом, когда проект разросся, получилось так, что мы с коллегой начали работать над разными частями. Он делал дизайн в одном разделе, я делал функционал в другом. В результате мне стало тяжело отслеживать все ошибки и мне постоянно приходили замечания от ПМ: "Почему я кликаю и ничего не происходит".
    Естественно, я раскапывал у себя на локале код, пытался повторить ситуацию, чтобы поправить. Но на сервере все равно периодически возникают ошибки.
    Чтобы оперативно править ошибки на сервере, я решил сделать логгирование mysql и php ошибок. Чтобы они внезапно не переполнились (когда база упадет), сделал ограничение в 4 мегабайта. Крон каждый час проверяет изменение файла и если возникали ошибки, то высылает уведомление на меил. Сделал простенький интерфейс очистки логов после их проверки. Как мне показалось, что так можно будет гораздо быстрее найти и отладить ошибку (лог идет с трассировкой). В результате в первый же день нашел ошибки о которых и не догадывался.
    Но коллега категорически против логов. Он говорит, что логгирование вызовет жуткие тормоза на сервере, завалит всю его память и что ошибки не должны быть на продакшене. С последним я согласен на 100%. Но ведь не всё и всегда можно уследить. Особенно, когда будут пытаться ломать, то можно будет найти и уязвимые места. Да и на мои объяснения, что запись в лог будет вестись, только когда будут возникать ошибки, которых практически не будет, он говорит, что логгирование все равно не нужно.

    В субботу повисла база и кончились коннекты. В результате системный mysql-лог быстро переполнился и сервер повис. Сначала все свалили на меня, что это все мои логи, хотя мои логи весили 16 кб.
    Я предложил отключить стандартное логгирование php и mysql. Но насчет моего лога мы спорим уже 3 день. Коллега категорически против. На мои доводы, что если у пользователя возникнет ошибка и пропадут деньги мне говорят, что и без моих логов такое отлаживали.

    Далее спор - показывать ли пользователю уведомление, что произошла ошибка? Я рассказываю ситуацию: человек положил денег, купил товар, а в это время произошла ошибка и пользователь остался с шишом. Если ему покажет ошибку ("Извините, на сервере произошла ошибка, попробуйте позже. Администраторы уведомлены."), он либо сообщит о ней, либо подождет, пока исправят, если ничего не покажет, будет орать на весь сервер, что мы воры. Мне сказали, что ошибки не будут показываться.

    Что делать? Не хотят мне верить и все.
     
  2. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    :D
    нехило он себя дескредитовал)) это там столько ошибок чтоле? :D
     
  3. nimistar

    nimistar Активный пользователь

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    Kreker я бы воткнул хотя бы перехватчик (set_error_handler) и перенаправил все в фаил - открываешь фаил и читаешь ... потихоньку закрывая нотайсы и решая варнинги...
     
  4. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Собственно, я так и сделал. С трассировкой.
     
  5. nimistar

    nimistar Активный пользователь

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    Kreker -теперь лови ошибки а потом им портянку логов предьяви :)


    (хотя я тут один раз спустив все ошибки в дев нуль - огреб знатное торможение скрипта ... то есть перехватчик тот еще тормоз - но убрав все нотайсы и варнинги (получил сокращение вызова перехватчика) радовался огромному приросту скоростей )
     
  6. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    ну так вот же-шь. Тормоза - дело поправимое, главное - ошибки своевременно исключать.
     
  7. nimistar

    nimistar Активный пользователь

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    Kreker - ну в общем да .... а насчет показывать ошибки или нет - тут сложный вопрос ... ошибки с платежами многих пугают и могут привести к потери аудитории .... чаще показывать что-то нейтральное типа "запрос обрабатывается" - и т.д. ... длительные обработки злят, но непугают
     
  8. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Какого хрена? display_erorrs = Off достаточно.

    Если ошибка не предусмотрена и не сработали стандартные обработчики try{} catch{} и т.д., то
    ОБЯЗАТЕЛЬНО сообщить об этом пользователю. (можно в виде - "ваш запрос поставлен на индивидуальную обработку. GUID такой-то, свяжитесь с менеджером")
    И выслать e-mail админу и/или менеджеру.

    GUID пишется вместе с ошибкой в лог, чтобы однозначно идентифицировать ошибку.

    Ребята, это конечно психология, но при кривой поддержке вы обретете геморроя больше.
    Вы уверены на 100%, что все ошибки и ситуация мониторится постоянно?
     
  9. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Твой коллега или лицемерит, или дурак.

    Потому что произойдет одно из двух
    или
    P.S. Включи профайлинг на полчаса на продакшене или тестировочном сервере.
    Ты увидишь сколько жрет твое внутреннее логгирование - редко больше 5%.
     
  10. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    Kreker
    Логи нужно, обязательно. Потому что когда произойдёт действительно что-то не понятное, без лога фиг поймёшь. Аргумент? Напиши официальное заявление на имя директора в трёх экземплярах, пущай подписывают (отказатся права не имеют) о принятии, пусть подошьют к делам, возьми свои экземпляры себе домой.

    А там напиши, поскольку тебе мешают качественно выполнять свою работу и ты в таких условиях не можешь гарантировать определённый уровень стабильности програмного продукта, то ты полностью снимаешь с себя какую-бы то нибыло отвественность за ошибки, которые могут возникнуть в процессе работы програмного продукта, о чём ставишь в известность выше стоящее руководство.
    Ну и хорошо было бы к этому заявлению приложить список причин, по которым нужно сделать логи - от простейшей возможности быстро находить и чинить ошибки ещё до выкладки на продакшн, до возможности по логам отследить сложнейшие ошибки, наличие которых можно понять только при всей возможной информации в наличии. Ну и можно поискать инфу по и-нету и приложить пару десятков статей :)

    В случае чего, помахаешь бумажкой и скажешь "Я вам говорил? Вот теперь сами разгребайте!" и уволься нафиг :D

    З.Ы. Последние 2 слова были шуткой, однако и в ней есть доля разумного смысла.
     
  11. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    А чего его врубать? Логгирование срабатывает только в случае ошибок. Ошибки - это редкость, поэтому никаких лагов вообще не будет.

    Psih
    Ну пока логгер работает, я его поставил со скрипом. И меня пинают по каждому лагу сервера, мол это я со своим логгером виноват +)
    Если будут убирать - так и напишу.
     
  12. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Для того чтобы сунуть в нос и дать под зад пинателям.

     
  13. iliavlad

    iliavlad Активный пользователь

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    а как отлаживали без логов-то?
     
  14. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Интуиция -) И фаербаг от php-ошибок, когда воспроизводили баг-ситуацию (если о ней знали).