Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Debug_Console [обсуждение] (Александр Михалицын, оценка: 3)
Goto page Previous  1, 2
Author Message
Александр Михалицын
Модератор



Joined: 23 May 2008
Posts: 1299
Карма: 82
   поощрить/наказать


PostPosted: Wed Apr 22, 2009 7:10 am (написано за 2 минуты 57 секунд)
   Post subject:
Reply with quote

Готовится версия v.1.1.4 вот преварительный списков фиксов:
  1. Теперь переносы строк в сообщениях обрабатываются в IE (правда перед второй строкой лишний пробел, но это проблема самого IE. (Если кто-то знает как фиксить -- подскажите :))
  2. Исправление с шириной консоли, теперь консоль нормально работает елси на странице есть сколл. (Юрий Насретдинов -- респект :))
  3. Консоль раскрывается в русской раскладке на Mac'ax (За тест спасибо Юрию Насретдинову =))
  4. Написаны доки
Back to top
View user's profile Send private message Send e-mail
Александр Михалицын
Модератор



Joined: 23 May 2008
Posts: 1299
Карма: 82
   поощрить/наказать


PostPosted: Wed Aug 12, 2009 9:25 am (спустя 3 месяца 20 дней 2 часа 14 минут; написано за 2 минуты 46 секунд)
   Post subject:
Reply with quote

Александр Михалицын,
версии 1.1.4, боюсь не будет.
Зато будет версия 2.0! Из усовершенствований:
  1. Измененное ядро (теперь темплейт консоли отделен от ядра)
  2. Плагин для перехвата php ошибок в консоль (тоесть если интерпритор PHP,
    выводит ошибку, плагин будет убирать хтмл-элементы ошибки, а текст ошибки --
    выводить в консоль!
  3. Ну и естественно фиксы из 1.1.4 + скорее всего новый дизайн.
Back to top
View user's profile Send private message Send e-mail
Александр Михалицын
Модератор



Joined: 23 May 2008
Posts: 1299
Карма: 82
   поощрить/наказать


PostPosted: Tue Sep 15, 2009 1:16 pm (спустя 1 месяц 3 дня 3 часа 50 минут; написано за 5 минут 12 секунд)
   Post subject:
Reply with quote

Версия 2.0 почти готова, думаю до конца сентября выложу. Из добавлений еще будет php-backend для неё!
На подобии c dklab.ru/lib/Debug_HackerConsole/.

Заранее отвечу на вопрос, который наверняка возникнет у людей:
Quote:
А чем твоя консоль лучше, чем у Дмитрия?
А вот ответ:
Quote:
Консоль от Дмитрия несомненно отличная, но иногда возникают ситуации, когда консоль нужна на обеих сторонах (серверной и клиентской),
так вот консоль от Дмитрия, к сожалению, имеет не самый удобный JS-интерфейс (я имею ввиду интерфейс на уровне объекта),
а также не имеет ряд функций, которые пригодятся JS-разработчику. К тому же она уже давно не развивается...
Сначала я хотел адаптировать бакенд от Дмитрия, но потом пришел к выводу, что проще будет написать что-то свое, и написал!
В моей консоли скоро появятся: человеческий профайлер, нормальное меню с большим колличеством опций, хорошая документация, новый стиль! (-:
Back to top
View user's profile Send private message Send e-mail
Александр Михалицын
Модератор



Joined: 23 May 2008
Posts: 1299
Карма: 82
   поощрить/наказать


PostPosted: Tue Oct 06, 2009 6:38 pm (спустя 21 день 5 часов 22 минуты; написано за 1 минуту 46 секунд)
   Post subject:
Reply with quote

Итак, сейчас близится релиз 2й версии, в ней будет новый интерфейс объекта debug_console, более удобный и продуманый.
Выкладываю новый вариант интерфейса, прошу прокомментировать, высказать предложения и пр.
Или даже выложить свой вариант.
Code (JavaScript): скопировать код в буфер обмена
//

//
debug_console.put('message');
 
//
debug_console.put('1', '2', '3', '4', '...');
 
//
//ToDo (2.x) add cssClass arg
debug_console.put_format('message', 'tip', 'colour');
 
//
debug_console.put_format(['message', 'tip', 'colour'], [...], [...]);
 
//
var some_group = debug_console.create_group('name', 'tip', 'title_color', 'messages_color');
 
//
 
Back to top
View user's profile Send private message Send e-mail
WingedFox
Профессионал



Joined: 29 Apr 2003
Posts: 4064
Карма: 269
   поощрить/наказать

Location: Питер

PostPosted: Tue Oct 06, 2009 7:09 pm (спустя 30 минут; написано за 12 минут 32 секунды)
   Post subject:
Reply with quote

Александр Михалицын
Самый главный вопрос: а зачем нужно указывать цвета, кастомные CSS классы и т.п.?
Как по мне, достаточно, всего лишь
1) положить сообщение
2) положить сообщение с ID
3) добавить группировку (напр. в начале метода)/снять группировку (напр. в конце метода)
4) (опционально) можно ввести методы .debug, .info, .warning, error с соотв. встроенными стилями для каждого типа сообщения.
5) (опционально) устанавливать максимальный логгируемый уровень (см. (4))
6) (опционально^2) кроме строчки принимать Exception и выдирать из него сообщение и стек ошибок
И нечего усложнять себе жизнь, делая консоль "многофункциональной".

Главное чтобы она была
а) ненавязчивой
б) простой
в) умеренно гибкой

Предложенный тобой вариант не удовлетворяет ни одному условию
а) вмешивается в код
  1) зачем мне нужны в коде какие-то лишние точки входа в консоль (ака "группы")?
  2) при наличии групп я не могу простым образом вырезать запись чего-либо в консоль, при размещении скриптов на рабочих серверах
б) нужно читать доку, что там за параметры, что за цсс и т.п.
в) я не могу одной строчкой (напр. DEBUG_CONSOLE_LOG_LEVEL="warn" или "none", null) убрать из лога мусор
Back to top
View user's profile Send private message
Александр Михалицын
Модератор



Joined: 23 May 2008
Posts: 1299
Карма: 82
   поощрить/наказать


PostPosted: Tue Oct 06, 2009 7:52 pm (спустя 43 минуты; написано за 7 минут 7 секунд)
   Post subject:
Reply with quote

Quote:
2) при наличии групп я не могу простым образом вырезать запись чего-либо в консоль, при размещении скриптов на рабочих серверах
Ну возможность скрытия группы и её сообщений я могу сделать.
Что-то типа:
Code (JavaScript): скопировать код в буфер обмена
group_object.hide();
Quote:
в) я не могу одной строчкой (напр. DEBUG_CONSOLE_LOG_LEVEL="warn" или "none", null) убрать из лога мусор
Именно для этого и нужны группы, для того чтобы по степени важности (и не только) сообщений можно было групироваь их.
А метод hide, который я реализую, будет делать именно то, что ты хочешь.
Quote:
б) нужно читать доку, что там за параметры, что за цсс и т.п.
Ну доку прочитать 5 минут, а за то потом как классно будет! В конце концов, тебе всего-то,
в начале скрипта надо будет написать что-то вроде:
Code (JavaScript): скопировать код в буфер обмена
var errors = debug_console.create_group(...);
var warnings = debug_console.create_group(...);

//Где-то в середине...
errors.put(...);
warnings.put(...);

//Нужно скрыть ворнинги:
warnings.hide();
По моему классно... Что скажешь?
Quote:
1) положить сообщение
2) положить сообщение с ID
Поэтому для тебя есть метод put, а для всяких рюшечек и пр. есть метод put_format. (-;
Quote:
3) добавить группировку (напр. в начале метода)/снять группировку (напр. в конце метода)
Поясни, я не понял, о каком снятии и какой группировки?
Сорри за непонятливость. (-:
Quote:
6) (опционально^2) кроме строчки принимать Exception и выдирать из него сообщение и стек ошибок
Хм... У любого экскепшена должен быть toString(), консоль его вызовет в любом случае, и тут объект экскепшена должен позаботиться обо всем сам...
Или ты хочешь переложить реализацию toString'a из объекта Error в консоль?

Кстати, не подскажешь кроссбраузерный способ как ловить не пойманые исключения? (onerror это понятно, но он не везде работает)
Back to top
View user's profile Send private message Send e-mail
WingedFox
Профессионал



Joined: 29 Apr 2003
Posts: 4064
Карма: 269
   поощрить/наказать

Location: Питер

PostPosted: Wed Oct 07, 2009 10:46 am (спустя 14 часов 53 минуты; написано за 13 минут 37 секунд)
   Post subject:
Reply with quote

Александр Михалицын wrote:
Ну возможность скрытия группы и её сообщений я могу сделать.
1) Зачем мне лишний код в проекте?
2) Зачем мне в проекте управлять видимостью "групп сообщений"?
3) Зачем нужна группировка?
Александр Михалицын wrote:
Именно для этого и нужны группы, для того чтобы по степени важности (и не только) сообщений можно было групироваь их.
А метод hide, который я реализую, будет делать именно то, что ты хочешь.
1) Зачем мне нужно группировать сообщения, если я хочу видеть лог сообщений только в порядке их добавления?
Александр Михалицын wrote:
Ну доку прочитать 5 минут, а за то потом как классно будет!
Я готов потратить на доку не более 30 секунд, при условии что Аптана покажет мне JSDoc.
Александр Михалицын wrote:
в начале скрипта надо будет написать что-то вроде:
1) Зачем мне нужно это писать в начале скрипта?
2) Как я могу вырезать этот код из production релиза?
Александр Михалицын wrote:
а для всяких рюшечек и пр. есть метод put_format. (-;
1) Зачем нужны рюшечки в логе?
2) Зачем нужен непонятно что делающий "put_format"?
Александр Михалицын wrote:
Поясни, я не понял, о каком снятии и какой группировки?
Code (any language): скопировать код в буфер обмена
[main] - debug - Starting app
 [sub] - info - params in: ...
 [sub] - debug - sorting some array: ..., ..., ...
  [sorter] - info - array length: ...
  [sorter] - debug - using algorithm: ...
  [sorter] - debug - done in ... seconds
 [sub] - debug - array sort finished, result: ..., ..., ...
[main] - debug - finished app
Но это так, очень редко нужная фича. В 90% случаев хватает абсолютно плоского лога. Особенно учитывая асинхронность JS, когда сообщения из таймеров могут попадать в группы...
Александр Михалицын wrote:
У любого экскепшена должен быть toString()
Который печатает сообщение и код, а вложенные исключения обходятся руками.
Александр Михалицын wrote:
как ловить не пойманые исключения?
Пользовать onerror и не париться, что оно где-то не работает. В конце концов - будет работать везде.
Back to top
View user's profile Send private message
WingedFox
Профессионал



Joined: 29 Apr 2003
Posts: 4064
Карма: 269
   поощрить/наказать

Location: Питер

PostPosted: Wed Oct 07, 2009 10:52 am (спустя 6 минут; написано за 3 минуты 59 секунд)
   Post subject:
Reply with quote

Насчёт вырезания логгирования - это совсем не надуманная проблема, ибо хорошо залоггированный код весит ооочень много, не говоря уже о консоли, которая требуется для него.
В случае нормального подхода я сделаю так:
Code (any language): скопировать код в буфер обмена
s/\s*debug_console\.(info|debug|log|warning|error).+?$//g
и получу совершенно чистый исходник, который можно использовать на production серверах.
Back to top
View user's profile Send private message
Александр Михалицын
Модератор



Joined: 23 May 2008
Posts: 1299
Карма: 82
   поощрить/наказать


PostPosted: Wed Oct 07, 2009 12:11 pm (спустя 1 час 19 минут; написано за 3 минуты 20 секунд)
   Post subject:
Reply with quote

Quote:
и получу совершенно чистый исходник, который можно использовать на production серверах.
Так консоль-то и предназначена для того чтобы НЕ ВЫРЕЗАТЬ логирование, а использовать как есть на продакшн версиях сайта...

Например: denwer.ru (нажми Ctrl + ~)

Если ты вырезаешь логирование, то смысла в консоли нет ВООБЩЕ. Тогда alert'ы. Но мне лично удобнее использовать консоль.
А какие-то "секрытные" данные, например из бакенда (а скоро будет бакенд для консоли на пхп), можно скрывать...
Что-то типа:
Code (php): скопировать код в буфер обмена
if (ADMIN)
{
   //секретно
   $debug_console->out(...);
}

//не секретно
$debug_console->out(...);
Back to top
View user's profile Send private message Send e-mail
WingedFox
Профессионал



Joined: 29 Apr 2003
Posts: 4064
Карма: 269
   поощрить/наказать

Location: Питер

PostPosted: Wed Oct 07, 2009 1:21 pm (спустя 1 час 9 минут; написано за 4 минуты 18 секунд)
   Post subject:
Reply with quote

Александр Михалицын
Ну-ну, "на продакшн сайтах".... Флаг в руки и тормоза на шею =)))))
Логгирование нужно только в девелоперской версии. Консоль нужна там же, раз уж логи никуда больше не сложить. При наличии простой возможности, я бы складывал их только рядом с серверными логами.

А, ну да, ещё нужно для демонстрации "шо оно и так бывает".

PS: Раз уж тут разговор идёт о бренчалках и свистульках - я удаляюсь, ибо не позволю подобную консоль выложить ни на один отдаваемый заказчику сайт. =)
Back to top
View user's profile Send private message
Александр Михалицын
Модератор



Joined: 23 May 2008
Posts: 1299
Карма: 82
   поощрить/наказать


PostPosted: Wed Oct 07, 2009 3:19 pm (спустя 1 час 58 минут; написано за 34 секунды)
   Post subject:
Reply with quote

WingedFox,
Quote:
 бренчалках и свистульках
О каких?
Quote:
Флаг в руки и тормоза на шею =)))))
Какие тормоза? Где ты их видишь например на denwer.ru?
Back to top
View user's profile Send private message Send e-mail
Furax
Участник форума



Joined: 07 Sep 2007
Posts: 25
Карма: 12
   поощрить/наказать


PostPosted: Wed Oct 07, 2009 4:00 pm (спустя 40 минут; написано за 2 минуты 15 секунд)
   Post subject:
Reply with quote

WingedFox верно говорит. Лишнего на рабочей версии быть не должно - не важно, сколько оно весит и "кушает". Единственный случай, когда консоль может пригодиться, - это когда что-то работает на тестовой версии сайта, но отказывается в упор на её точной копии, выложенной на всеобщее обозрение, и приходится проводить отладку именно там... Но я не думаю, что для JS это актуально. ^_^
Back to top
View user's profile Send private message
Александр Михалицын
Модератор



Joined: 23 May 2008
Posts: 1299
Карма: 82
   поощрить/наказать


PostPosted: Wed Oct 07, 2009 4:25 pm (спустя 24 минуты; написано за 3 минуты 1 секунду)
   Post subject:
Reply with quote

Furax wrote:
WingedFox верно говорит. Лишнего на рабочей версии быть не должно - не важно, сколько оно весит и "кушает". Единственный случай, когда консоль может пригодиться, - это когда что-то работает на тестовой версии сайта, но отказывается в упор на её точной копии, выложенной на всеобщее обозрение, и приходится проводить отладку именно там... Но я не думаю, что для JS это актуально. ^_^
А если у меня нет понятия продакшн/не продакшн? Ну то есть я разрабатываю там же где и тестирую... (-:
Back to top
View user's profile Send private message Send e-mail
Furax
Участник форума



Joined: 07 Sep 2007
Posts: 25
Карма: 12
   поощрить/наказать


PostPosted: Thu Oct 08, 2009 12:40 pm (спустя 20 часов 15 минут; написано за 2 минуты 57 секунд)
   Post subject:
Reply with quote

Значит, позор Тебе. :) JS вполне можно протестировать на оффлайн-версии. Честно говоря, из таких вещей, которые нельзя, вспоминается разве что DNS...

А вот для тестовой версии консоль будет очень даже кстати: я могу отлаживать большой проект и не заботиться о комментировании всех алертов сразу.
Back to top
View user's profile Send private message
WingedFox
Профессионал



Joined: 29 Apr 2003
Posts: 4064
Карма: 269
   поощрить/наказать

Location: Питер

PostPosted: Thu Oct 08, 2009 1:42 pm (спустя 1 час 2 минуты; написано за 40 секунд)
   Post subject:
Reply with quote

Furax wrote:
для тестовой версии консоль будет очень даже кстати
Но, тогда рюшечки и даром не нужны, ибо нужно удобство и топорная простота =)
Back to top
View user's profile Send private message
Александр Михалицын
Модератор



Joined: 23 May 2008
Posts: 1299
Карма: 82
   поощрить/наказать


PostPosted: Thu Oct 08, 2009 2:10 pm (спустя 27 минут; написано за 33 секунды)
   Post subject:
Reply with quote

WingedFox,
Quote:
Но, тогда рюшечки и даром не нужны, ибо нужно удобство и топорная простота =)
Так пожалуйста!
Code (JavaScript): скопировать код в буфер обмена
debug_console.put('');
Back to top
View user's profile Send private message Send e-mail
WingedFox
Профессионал



Joined: 29 Apr 2003
Posts: 4064
Карма: 269
   поощрить/наказать

Location: Питер

PostPosted: Thu Oct 08, 2009 2:58 pm (спустя 48 минут; написано за 44 секунды)
   Post subject:
Reply with quote

Александр Михалицын
Свои пожелания - реально необходимый интерфейс - я указал выше.
Т.ж. можешь почитать доку по log4j
Back to top
View user's profile Send private message
Guest






Карма: 388
   поощрить/наказать


PostPosted: Tue Nov 10, 2009 2:38 pm (спустя 1 месяц 1 день 23 часа 39 минут; написано за 2 минуты 44 секунды)
   Post subject:
Reply with quote

вопрос может и не по консоли, но близко.

возникла проблема с отслеживанием в реальном времени потоков в очереди на исполнение (тех, что по setTimeout/setInterval устанавливаются. то есть есть сайт, на котором проблема с постепенной загрузкой проца JS-ом, видимо от увеличения вызываемых по таймеру потоком. Есть ли для каких-то браузеров решения чтобы отследить что за потоки устанавливаются?
Back to top
dimagolov
Участник форума



Joined: 04 Feb 2007
Posts: 1664
Карма: 96
   поощрить/наказать

Location: Christ Church, Barbados

PostPosted: Tue Nov 10, 2009 2:39 pm (спустя 42 секунды; написано за 15 секунд)
   Post subject:
Reply with quote

гостем был я, забыл залогиниться
Back to top
View user's profile Send private message
WingedFox
Профессионал



Joined: 29 Apr 2003
Posts: 4064
Карма: 269
   поощрить/наказать

Location: Питер

PostPosted: Tue Nov 10, 2009 2:53 pm (спустя 13 минут; написано за 1 минуту 9 секунд)
   Post subject:
Reply with quote

dimagolov
Чтобы нагрузка росла медленнее, можно использовать штуки типа forum.dklab.ru/viewtopic.php?t=19965
Ну или просто перегрузить setInterval/setTimeout и логгировать обращения к ним.
Back to top
View user's profile Send private message
dimagolov
Участник форума



Joined: 04 Feb 2007
Posts: 1664
Карма: 96
   поощрить/наказать

Location: Christ Church, Barbados

PostPosted: Tue Nov 10, 2009 5:22 pm (спустя 2 часа 29 минут; написано за 27 секунд)
   Post subject:
Reply with quote

Quote:
перегрузить setInterval/setTimeout
спасибо за идею, попробую...
Back to top
View user's profile Send private message
Александр Михалицын
Модератор



Joined: 23 May 2008
Posts: 1299
Карма: 82
   поощрить/наказать


PostPosted: Fri Nov 13, 2009 7:03 am (спустя 2 дня 13 часов 40 минут; написано за 1 минуту 10 секунд)
   Post subject:
Reply with quote

dimagolov,
в будущие версии консоли добавлю перегрузку таймеров... (-:

Сейчас уже полностью готов дизайн второй версии, бакенд на PHP, дописывается код...
Back to top
View user's profile Send private message Send e-mail
dimagolov
Участник форума



Joined: 04 Feb 2007
Posts: 1664
Карма: 96
   поощрить/наказать

Location: Christ Church, Barbados

PostPosted: Sat Nov 14, 2009 1:43 am (спустя 18 часов 39 минут; написано за 1 минуту 27 секунд)
   Post subject:
Reply with quote

Александр Михалицын wrote:
dimagolov,
в будущие версии консоли добавлю перегрузку таймеров... (-:
forum.woweb.ru/topic43591s0.html?#entry300537
Back to top
View user's profile Send private message
Александр Михалицын
Модератор



Joined: 23 May 2008
Posts: 1299
Карма: 82
   поощрить/наказать


PostPosted: Mon Nov 16, 2009 4:48 pm (спустя 2 дня 15 часов 5 минут; написано за 25 секунд)
   Post subject:
Reply with quote

dimagolov,
спасибо. За основу возьму ваш логер и прикручу его к консоли.

[+]
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Goto page Previous  1, 2
Page 2 of 2    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML