Автор Тема: как зделать вывод ошибок в лог файл?  (Прочитано 13140 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн KillerWM

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 20
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
имеется скрипт который неполностью выполняет свою работу в каком месте и из-за чего вылетает неизвестно, как сделать чтобы ошибки скрипта выводились в лог файл?

Оффлайн demond

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 24
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
как зделать вывод ошибок в лог файл?
« Ответ #1 : 08 Февраля 2008, 13:23:53 »
можно сделать несколькими способами:
1) просто открываешь в начала скрипта файл и и везде где хочешь можешь писать в него содержимое переменных и тд.
2) можно смотреть содержимое переменных в процессе выполнения скрипта используя встроенную функцию warn, она не останавливает выполнение скрипта в отличие от die!

Оффлайн KillerWM

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 20
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
как зделать вывод ошибок в лог файл?
« Ответ #2 : 08 Февраля 2008, 14:14:51 »
Цитировать
demond:
можно сделать несколькими способами: 1) просто открываешь в начала скрипта файл и и везде где хочешь можешь писать в него содержимое переменных и тд. 2) можно смотреть содержимое переменных в процессе выполнения скрипта используя встроенную функцию warn, она не останавливает выполнение скрипта в отличие от die!


2 пункт не подходит везде warn или die не поставишь да и мне вывод не в браузер нужен а в файл потому что скрипт долго выполняется

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

Оффлайн demond

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 24
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
как зделать вывод ошибок в лог файл?
« Ответ #3 : 08 Февраля 2008, 15:33:26 »
Цитировать
KillerWM:
1 пункт делал но проблема в том что запись в файл делается через буфер и при вылете скрипта по какойто ошибке, в файл лога буфер не записывается и лог остается пустой, а вот если скрипт нормально выходит и файл лога штатно закрывается то в него запись происходит

а что, писать в файл через буфер это такая задумка? просто создать отдельный файл для debug\'a и писать в него не сразу не получится?
Кроме того есть такой метод выявления ошибок: либо разбивать скрипт на части и тестить каждую часть в отдельности, либо встать какой-нибудь print и перемещать его по скрипту сверху вниз.

Оффлайн It-sys

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 7
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
как зделать вывод ошибок в лог файл?
« Ответ #4 : 08 Февраля 2008, 16:14:41 »
Поставить IIS и PerlIS - он все ошибки пишет в лог файл :-)

Оффлайн KillerWM

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 20
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
как зделать вывод ошибок в лог файл?
« Ответ #5 : 08 Февраля 2008, 16:18:21 »
Цитировать
demond:
а что, писать в файл через буфер это такая задумка? просто создать отдельный файл для debug\'a и писать в него не сразу не получится? Кроме того есть такой метод выявления ошибок: либо разбивать скрипт на части и тестить каждую часть в отдельности, либо встать какой-нибудь print и перемещать его по скрипту сверху вниз.


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

для вывода ошибок я вставил эту строчку:
BEGIN{use CGI::Carp qw(carpout);open(LOG, ">>$0.err");carpout(LOG);close(LOG);}

но при вылете скрипта лог файл пуст вероятно из-за использования буфера, как это исправить?

Оффлайн Yaroslav

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 323
  • +0/-0
  • 0
    • Просмотр профиля
как зделать вывод ошибок в лог файл?
« Ответ #6 : 10 Февраля 2008, 00:48:49 »
open (ADD, ">>log.log");
print ADD "$_";
close (ADD);
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили \"Титаник\".

Оффлайн KillerWM

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 20
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
как зделать вывод ошибок в лог файл?
« Ответ #7 : 10 Февраля 2008, 12:03:52 »
Цитировать
Yaroslav:
print ADD "$_";


и че эта хрень делает?

Оффлайн Yaroslav

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 323
  • +0/-0
  • 0
    • Просмотр профиля
как зделать вывод ошибок в лог файл?
« Ответ #8 : 10 Февраля 2008, 21:01:29 »
записывает в файл все что ты укажешь
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили \"Титаник\".

Оффлайн KillerWM

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 20
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
как зделать вывод ошибок в лог файл?
« Ответ #9 : 10 Февраля 2008, 23:23:52 »
Цитировать
Yaroslav:
записывает в файл все что ты укажешь


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

Оффлайн ravshaniy

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 191
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
как зделать вывод ошибок в лог файл?
« Ответ #10 : 11 Февраля 2008, 19:13:10 »
мне почемуто еще изначально показалось что задача поставлена неправильно. нужно не лог писать. а тесты. поэтому и не стал учавствовать в дискуссии.
убили кенни, сволочи

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
как зделать вывод ошибок в лог файл?
« Ответ #11 : 11 Февраля 2008, 19:57:46 »
open STDERR,"> file" ?

Оффлайн KillerWM

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 20
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
как зделать вывод ошибок в лог файл?
« Ответ #12 : 11 Февраля 2008, 21:19:32 »
Цитировать
arto:
open STDERR,"> file" ?


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

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
как зделать вывод ошибок в лог файл?
« Ответ #13 : 11 Февраля 2008, 21:27:25 »
STDERR небуферизован, by default.

Оффлайн KillerWM

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 20
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
как зделать вывод ошибок в лог файл?
« Ответ #14 : 11 Февраля 2008, 21:54:39 »
Цитировать
arto:
STDERR небуферизован, by default.


а open ведь через буфер с файлами работает.

завтра попробую, если попробую так:
open STDERR,"> file"
print STDERR "тест"

строка "тест" через буфер пойдет или нет ?

 

Sitemap 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