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

AlekVolsk

  • Гуру
  • 6591
  • 383 / 4
Компонент чтения логов
« : 23.03.2018, 11:57:52 »
Преамбула и вводная задача

Многие разрабатывают свои расширения и при этом не используют логирование действий и/или ошибок своего расширения или же разрабатывают собственный логгер, почему-то полностью игнорируя уже имеющийся штатный логгер Joomla.
Как правило, причины две:
1. не умение пользоваться JLog
2. логи неудобно просматривать

Если с первой проблемой достаточно просто справиться, просто изучив документацию ( https://docs.joomla.org/Using_JLog#Logging_a_specific_log_file ), то вторая проблема действительно стоит ребром: необходимо либо выкачивать лог по ftp либо просматривать его через файл-менеджер в панели хостинга, оба варианта так себе, но иного решения нет (во всяком случае, я не нашел, поправьте меня, если не прав) :(

Решение

Компонент просмотра сохраненных логов ядра и расширений Joomla

Возможности:
– чтение файлов логов и вывод их содержимого в табличном виде в админке
– авторазворачивание json-строки сообщения при просмотре лога в админке
– возможность скачать файл лога в формате CSV (два варианта: классический и специально для открытия в excel без плясок с бубном)
– возможность удалить файл лога
– (upd 1.2.0) возможность чтения файла лога ошибок PHP (при условии, что он установлен в php.ini и доступен для чтения с сайта)

Требования:
– Joomla 3.2 и выше (задействован com_ajax)
– PHP 5.6 и выше (ну тут сами понимаете  ^-^)

Минус: файл лога читается и выводится целиком, если он большой, то это займет время, создаст нагрузку на ресурсы и трафик, поэтому
Рекомендация разработчикам расширений: при интенсивном логировании предусмотрите авторазбиение логов на части, по типам задач, по периодам, еще как-либо, но чтобы логи ваши не весили мегатонны  ;)

« Последнее редактирование: 08.06.2018, 18:17:18 от AlekVolsk »
*

stepan39

  • Захожу иногда
  • 313
  • 20 / 0
Re: Компонент чтения логов
« Ответ #1 : 23.03.2018, 13:19:03 »
Добрый день!

У меня логи оплаты самописного компонента формируются в таком формате:
Спойлер
[свернуть]

Сам файл находится тут administrator/logs/robokassa.log и виден в Вашем компоненте.

Проблема одна - не отображаются данные:
Показано записей: 0

Как можно решить эту проблему без изменения существующей структуры лога?

Спасибо!
*

AlekVolsk

  • Гуру
  • 6591
  • 383 / 4
Re: Компонент чтения логов
« Ответ #2 : 23.03.2018, 14:13:55 »
никак не решить эту проблему, т.к. ваш лог пишется самописным логгером, а не логеером Joomla
могу предложить писать в лог сообщение в джейсоне, которое потом можно будет развернуть в читабельный массив после допила
*

stepan39

  • Захожу иногда
  • 313
  • 20 / 0
Re: Компонент чтения логов
« Ответ #3 : 23.03.2018, 15:26:47 »
никак не решить эту проблему, т.к. ваш лог пишется самописным логгером, а не логеером Joomla
могу предложить писать в лог сообщение в джейсоне, которое потом можно будет развернуть в читабельный массив после допила
Немного странное решение, но я, разумеется, говорю это как дилетант.
Предполагал, что возможно внести в код компонента простое условие, при котором он бы распознавал формат лог-файла и выводил его в удобноваримом виде:

логи Joomla - в виде таблицы, как сейчас
логи, подобные моему - как текст (без форматирования)

Ведь там и там из .log файла чтение идет, без всяких json
 
*

AlekVolsk

  • Гуру
  • 6591
  • 383 / 4
Re: Компонент чтения логов
« Ответ #4 : 23.03.2018, 17:27:58 »
На самом деле логи Joomla тоже текстовые, как один текст от другого отличить?
А вообще ничего странного нет: не надо собственных костылей, используйте уже имеющееся апи Joomla

А еще у вас проблема с безопасностью: если перейти по адресу site/administrator/logs/robokassa.log, то я смогу прочитать ваш лог и получу достаточную информацию об обороте средств через ваш сайт
« Последнее редактирование: 23.03.2018, 17:31:17 от AlekVolsk »
*

stepan39

  • Захожу иногда
  • 313
  • 20 / 0
Re: Компонент чтения логов
« Ответ #5 : 23.03.2018, 17:34:13 »
На самом деле логи Joomla тоже текстовые, как один текст от другого отличить?
А вообще ничего странного нет: не надо собственных костылей, используйте уже имеющееся апи Joomla

А еще у вас проблема с безопасностью: если перейти по адресу site/administrator/logs/robokassa.log, то я смогу прочитать ваш лог и получу достаточную информацию об обороте средств через ваш сайт

Да, Вы правы. Спасибо за ответ.
*

AlekVolsk

  • Гуру
  • 6591
  • 383 / 4
Re: Компонент чтения логов
« Ответ #6 : 23.03.2018, 18:31:17 »
Добавил авторазворачивание json-строки сообщения при просмотре лога в админке
Фикс mime-типа скачиваемого файла лога

Для тех, кто успел поставить версию 1.0.0: эта версия не содержала указателя на автоматический сервер обновлений, пожалуйста, сделайте обновление на новую версию вручную.
« Последнее редактирование: 23.03.2018, 21:29:05 от AlekVolsk »
*

zikkuratvk

  • Глобальный модератор
  • 4368
  • 310 / 2
  • Разрабатываем для Joomla
Re: Компонент чтения логов
« Ответ #7 : 23.03.2018, 21:41:34 »
Сделай расшифровку с поиском)) для людей не в теме будет манна небесная.
Хочется уникальное расширение? ===>>>> JoomLine - Разрабатываем расширения под заказ.
Использую хостинг TimeWeb и Reg
*

AlekVolsk

  • Гуру
  • 6591
  • 383 / 4
Re: Компонент чтения логов
« Ответ #8 : 24.03.2018, 00:22:32 »
Сделай расшифровку с поиском)) для людей не в теме будет манна небесная.
Вадим, не понял тебя, что именно расшифровывать необходимо? подробнее пожалуйста
*

Taatshi

  • Глобальный модератор
  • 4971
  • 465 / 1
  • Верстаем и немножко кодим. Обращайтесь ;)
Re: Компонент чтения логов
« Ответ #9 : 24.03.2018, 07:24:27 »
Цитировать
при интенсивном логировании предусмотрите авторазбиение логов на части, по типам задач, по периодам, еще как-либо, но чтобы логи ваши не весили мегатонны

Это должно быть в настройках компонента.
*

AlekVolsk

  • Гуру
  • 6591
  • 383 / 4
Re: Компонент чтения логов
« Ответ #10 : 24.03.2018, 11:37:55 »
Это должно быть в настройках компонента.
достаточно проблематично, т.к. просто так на лету разбить на части и внедрить пагинатор не получится, использовать временные таблицы проблематично (представь, что в логе лям строк, очистили таблицу, залили в нее лог, затем начинаем отдавать кусками, - сколько времени займет операция?), хранить большой лог в памяти как состояние модели - вообще бред, других вариантов не вижу
*

Taatshi

  • Глобальный модератор
  • 4971
  • 465 / 1
  • Верстаем и немножко кодим. Обращайтесь ;)
Re: Компонент чтения логов
« Ответ #11 : 24.03.2018, 13:22:50 »
Алекс, разбиение нужно делать не на факте выдач  лога в админку, а в процессе записи. Ты должен перехватить запись в файл и обработать ее по установленным пользователем параметрам. Как минимум, писать в разные файлы.
*

AlekVolsk

  • Гуру
  • 6591
  • 383 / 4
Re: Компонент чтения логов
« Ответ #12 : 24.03.2018, 16:06:23 »
@Taatshi я не делаю запись в файл ) я читаю файлы, которые пишут другие, кто угодно, но не я )) этот компонент - просто инструмент для чтения файлов логов, не более )
*

Taatshi

  • Глобальный модератор
  • 4971
  • 465 / 1
  • Верстаем и немножко кодим. Обращайтесь ;)
Re: Компонент чтения логов
« Ответ #13 : 24.03.2018, 16:23:59 »
Я это понимаю. Пишет Joomla, Тебе нужно этот процесс перехватить и модифицировать. Впрочем, как знаешь.
*

AlekVolsk

  • Гуру
  • 6591
  • 383 / 4
Re: Компонент чтения логов
« Ответ #14 : 24.03.2018, 17:32:48 »
Ну нет, ничего перехватывать и модифицировать я не буду, да и в JLog нет триггеров, чтобы можно было что-то нормально без хаков перехватить, а что-либо хакать я не буду, и так вся Joomla на костылях ))
*

AlekVolsk

  • Гуру
  • 6591
  • 383 / 4
Re: Компонент чтения логов
« Ответ #15 : 30.04.2018, 01:19:28 »
обновление:
- исправлен баг с выводом json с глубокой вложенностью
- поддержка кастомных колонок
*

AlekVolsk

  • Гуру
  • 6591
  • 383 / 4
Re: Компонент чтения логов
« Ответ #16 : 08.06.2018, 18:16:45 »
обновление:
- понижено требование к версии php, теперь минимальная - 5.6
- возможность чтения файла лога ошибок PHP (при условии, что он установлен в php.ini и доступен для чтения с сайта)
*

stepan39

  • Захожу иногда
  • 313
  • 20 / 0
Re: Компонент чтения логов
« Ответ #17 : 01.10.2018, 06:34:32 »
Думаю, что была бы полезна такая фича, как архивирование. Задать в настройках путь до папки с архивами и в меню добавить кнопку "Архивировать" рядом с "Удалить".
Когда ежедневных логов скапливается много вместо удаления было бы самое то. И в селекте список маленький и архивчик на всякий случай  ^-^
*

AlekVolsk

  • Гуру
  • 6591
  • 383 / 4
Re: Компонент чтения логов
« Ответ #18 : 01.10.2018, 15:34:45 »
рассмотрю такой вариант ) реализуемо, только лог php отдельно висит и его после архивации не удалить
*

stepan39

  • Захожу иногда
  • 313
  • 20 / 0
Re: Компонент чтения логов
« Ответ #19 : 01.10.2018, 15:36:01 »
рассмотрю такой вариант ) реализуемо, только лог php отдельно висит и его после архивации не удалить
Спасибо! А php-лог как раз совсем не важен  ^-^
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

SM FAQ - компонент Вопрос-Ответ для Joomla 2.5+

Автор SmokerMan

Ответов: 676
Просмотров: 111420
Последний ответ 10.07.2018, 10:46:50
от lexxbry
JLweather - компонент и модуль погоды Joomla

Автор zikkuratvk

Ответов: 290
Просмотров: 50068
Последний ответ 06.02.2018, 17:48:33
от kern.USR
Компонент экспорта новстной ленты сайта в Яндекс и Рамблер новости

Автор Dron79

Ответов: 247
Просмотров: 54110
Последний ответ 07.10.2017, 00:02:35
от kabban
Компонент фото и видео альбома для Joomla 3.x

Автор xchesh

Ответов: 98
Просмотров: 24643
Последний ответ 11.08.2017, 16:15:07
от DragonFlyzz
INews - компонент автоматического наполнения сайта новостями

Автор zikkuratvk

Ответов: 25
Просмотров: 8731
Последний ответ 20.03.2017, 12:13:25
от Артём 2014