JLog — логирование средствами Joomla
простое журналирование
рейтинг: 6.7/10, голосов: 15
Бывают случаи, когда необходимо где-то на сервере вести логи ошибок, либо других важных событий в файл (например брутфорс аккаунтов). Самостоятельно открывать/закрывать файлы, соблюдать форматирование (чтобы читабельность не сбивалась), добавлять даты и прочее — это страшная рутина.
Взять на себя все эти трудности может стандартный класс Joomla — JLog. Он предоставляет удобное API, для работы с лог-файлами. Рассмотрим его работу на примере.
// Подключаем библиотеку JLog
jimport('joomla.error.log');
// Инициализация JLog-объекта, файл логов будет называться "my.log.php"
$log = &JLog::getInstance('my.log.php');
// Добавляем какие-то данные строку в лог
$log->addEntry(array('LEVEL' => '1','STATUS' => 'SOME ERROR:','COMMENT' => 'Your message here'));
// Добавляем еще какие-то данные строку в лог
$log->addEntry(array('LEVEL' => '1','STATUS' => 'Username:','COMMENT' => $username));
В итоге будет записаны в файл по адресу
<siteroot>/logs/my.log.php
Сообщения примерно следующего вида
#<?php die('Direct Access To Log Files Not Permitted'); ?>
#Version: 1.0
#Date: 2011-03-20 19:34:20
#Fields: date time level c-ip status comment
#Software: Joomla! 1.5.22 Stable [ senu takaa ama woi ] 04-November-2010 18:00 GMT
2011-03-20 19:34:20 1 <nobr>127.0.0.1</nobr> SOME ERROR: Your message here
2011-03-20 19:34:20 1 <nobr>127.0.0.1</nobr> Username: smet.denis
Стоит отметить некоторые моменты
- Текущая дата и IP-адрес были автоматически вписаны в файл
- В шапке стоит защита от прямого чтения лога, поэтому безопаснее будет файл логов называть *.php, либо защищаться с помощью .htaccess
- В шапке сохранена расшифровка лога по полям "#Fields"
Дополнительные параметры для JLog
При инициализации можно явно указывать следующие парметры
getInstance($file, $options, $path)
- $file - имя лог файла, по умолчанию "error.php"
- $options - настройки форматирования логов, по умолчанию будет использваться
"{DATE}\t{TIME}\t{LEVEL}\t{C-IP}\t{STATUS}\t{COMMENT}", где например STATUS - регистронезависимый ключ из массива для addEntry()
- $path - полный путь до директории с логами сайта, по умолчанию будет использоваться из глобальных настроек Joomla (<siteroot>/logs)
Пример использования
Если лог предвидится большой, то лучше использовать имя лога, зависимое от текущей даты. Например
// Каждый день новый лог файл
define('ERROR_LOG', 'notes.log.'.date('Y_m_d')'.php');
Примечание: Стандартный плагин system/log.php работает по тому же принципу. Если его включить, то будут отслеживаться все неудачные попытки зайти в панель управления.
According to my own monitoring, thousands of persons in the world get the <a href="/ goodfinance-blog.com/topics/mortgage-loans ">mortgage loans</a> at various creditors. Therefore, there's a good possibility to receive a student loan in any country.
Доброго времени суток всем.
Столкнулся с проблемой ведения логов в Joomla! 2.5.x, потратил много времени на поиск простого решения.
Для того что бы Вы не теряли его:
// Подключаем файл класса, обратите внимание, что он изменился в сравнении с Joomla! 1.5 API.
jimport('joomla.log.log');
// Добавляем логгер:
JLog::addLogger(
// Массив параметров:
array(
// Файл для логов:
'text_file' => 'test.log.php',
// (необязательный параметр) Директория для логов:
'text_file_path' => 'somewhere/logs'
)
);
// Запись лог сообщения:
JLog::add('Это сообщения для записи в лог файл');
Проверено, работает.
ЗЫ: это решение подходит для всей платформы Platform 11.4, т.е. и для Joomla! 1.7.
Что-то в плагинах у Jomla 2.5 не получается таким способом получить желаемый формат лога, в частности - с IP клиента.
Более-менее нормально получается так:
<code>
function getToto() {
...
$log = JLog::getInstance('mylog.php');
$log->addEntry(array('PRIORITY' => 'DEBUG', 'CATEGORY' => 'userRegistration', 'MESSAGE' => 'New User Code: '.$token));
...
</code>
однако не срабатывает LEVEL лога - всегда пишет "INFO", хотя, вот в куске кода - написано DEBUG - но будет все равно инфо 8-(
нихера не понял че куда подключаем
// Подключаем библиотеку JLog
Где ето прописывается? в шаблоне в файле индекс.пхп????
В Joomla 2.5 описанные методы отмечены как deprecated.
SI
Take Along Thomas the Tank Engine trains are also easy to come by, and
a lot significantly less costly than their wooden counterparts.
ѕous vetement secy
Greetings, I belіeve your blog could possіbly be having internet brоwser compatibility issues.
Whenever I look ?t your wеb site in Safari, it looks fine however, if opening in IE,
it's got some ?vеrlapping iѕsues. I simply wanted to рrovide you with
a quick heads up! Besi?es that, ?reat blog!
cheap insurance for cars
[url=" https://7auto24insurance.org/ "]cheapest auto
insurance[/url]
cheapest car insurance
best auto insurance
carxxinsurancexx.org/ - cheap car
insurance quotes
cheapest car insurance
auto insurance quotes
official statement
Hi my loved one! I want to say that this post is amazing, nice written and come with
almost all vital infos. I'd like to see more posts like this .
tinyurl.com/y6u2dwu6
Keep searching for more such useful information; stay informed, stay healthy.
You're bound to find something that's right for you and that you'll enjoy.
So far, exercise and balanced diets are viewed as a couple of the most
crucial factors conducive to healthy and strong body.
evolution of iphone - bit.ly/haarp-conspiracies+
I have read so many articles or reviews about the blogger lovers except this
article is actually a fastidious article, keep it up.
What's up mates, how is everything, and what you would like to say concerning
this post, in my view its really remarkable
for me.
Hi there! Do you know if they make any plugins to protect against hackers?
I'm kinda paranoid about losing everything I've worked hard on. Any recommendations?
It's truly very complicated in this full of activity life to listen news on TV, so I just use web for that reason, and obtain the most recent news.
Hey There. I found your blog using msn. This is an extremely
well written article. I will be sure to bookmark it and return to
read more of your useful info. Thanks for the post.
I'll definitely return.
Wow that was odd. I just wrote an extremely long comment but after I clicked submit
my comment didn't appear. Grrrr... well I'm not writing all that over again. Anyway, just wanted
to say superb blog!
Thanks in support of sharing such a nice thinking, piece of writing is nice,
thats why i have read it fully
Superb, what a web site it is! This website provides helpful data
to us, keep it up.
This is very interesting, You're a very skilled blogger.
I have joined your feed and look forward to seeking more of your magnificent post.
Also, I've shared your site in my social networks!
Онлайн фильм смотреть Алекс
Лютый онлайн посмотреть в хорошем качестве
Подробный гид по онлайн-кинотеатрам и видеосервисам
JLog — логирование средствами Joomla / Классы Joomla .:. Документация Joomla! CMS
erkqoc g6a914rh9flf77y8emq89k0go11kq136s.org/
[url= g6a914rh9flf77y8emq89k0go11kq136s.org/ ]uerkqoc[/url]
<a href="/ g6a914rh9flf77y8emq89k0go11kq136s.org/ ">aerkqoc</a>
JLog — логирование средствами Joomla / Классы Joomla .:. Документация Joomla! CMS
[url= g4bt3p5svj0962546cw7tu18n9y2b4zds.org/ ]uosgydcfhwy[/url]
osgydcfhwy g4bt3p5svj0962546cw7tu18n9y2b4zds.org/
<a href="/ g4bt3p5svj0962546cw7tu18n9y2b4zds.org/ ">aosgydcfhwy</a>
Incredible story there. What happened after? Thanks!
Tremendous things here. I am very glad to see your article.
Thanks so much and I'm looking forward to contact
you. Will you please drop me a e-mail?
JLog — логирование средствами Joomla / Классы Joomla .:. Документация Joomla! CMS
[url= g02y179jo2c7zgfk5mgfc7u4099p204ls.org/ ]unjzkverjo[/url]
<a href="/ g02y179jo2c7zgfk5mgfc7u4099p204ls.org/ ">anjzkverjo</a>
njzkverjo g02y179jo2c7zgfk5mgfc7u4099p204ls.org/
Dear joomla-book.ru admin, Your posts are always well received by the community.
Amazing! Its truly remarkable post, I have got much clear idea on the topic of from this post.