<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.sandbox.joomla.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=B2z</id>
	<title>Joomla! Documentation - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.sandbox.joomla.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=B2z"/>
	<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/Special:Contributions/B2z"/>
	<updated>2026-05-15T09:01:29Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Joomla_CodeSniffer/Page_display_title/ru&amp;diff=645127</id>
		<title>Translations:Joomla CodeSniffer/Page display title/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Joomla_CodeSniffer/Page_display_title/ru&amp;diff=645127"/>
		<updated>2020-01-03T16:11:07Z</updated>

		<summary type="html">&lt;p&gt;B2z: Created page with &amp;quot;Joomla CodeSniffer&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Joomla CodeSniffer&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Joomla_CodeSniffer/ru&amp;diff=645126</id>
		<title>Joomla CodeSniffer/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Joomla_CodeSniffer/ru&amp;diff=645126"/>
		<updated>2020-01-03T16:10:47Z</updated>

		<summary type="html">&lt;p&gt;B2z: Created page with &amp;quot;* Установите phpcs и стандарты Joomla, как описано выше. * В &amp;#039;&amp;#039;&amp;#039;Atom &amp;gt; Preferences &amp;gt; Install&amp;#039;&amp;#039;&amp;#039; установите &amp;#039;&amp;#039;&amp;#039;linter-phpcs&amp;#039;&amp;#039;&amp;#039; и...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Анализатор кода для Joomla ==&lt;br /&gt;
Это кастомный стандарт оформления кода для PHP CodeSniffer, который пытается привести всё к единому стандарту оформления кода в Joomla. В этом материале описывается, как настроить автоматическую проверку стиля оформления кода.&lt;br /&gt;
# Установка PHP CodeSniffer (phpcs).&lt;br /&gt;
# Клонирование Joomla Code Style (для использования с phpcs).&lt;br /&gt;
# Настройки вашей IDE для работы с PHP CodeSniffer и Joomla Code Style.&lt;br /&gt;
&lt;br /&gt;
[[File:CodeSnifferInAction.jpg|center|thumb|300px|PHP Code Sniffer in action]]&lt;br /&gt;
&lt;br /&gt;
==Зачем?==&lt;br /&gt;
*Понятная и устойчивая практика написания кода заставляет выглядеть файлы более профессионально. Конфликтующие стили в том же проекте (или ещё хуже, в том же файле) не только выглядят небрежно, но и поощряют ещё большую небрежность.&lt;br /&gt;
*Когда весь код соответствует единому стандарту, плохой код намного легче обнаружить.&lt;br /&gt;
*Для того, кто только начал разбираться с файлом в проекте, намного проще найти и исправить ошибки или расширить функциональность.&lt;br /&gt;
*Если нет постоянно поддерживаемого стандарта, разработчики будут форматировать текст как им удобнее. Это приводит к широкому диапазону изменений в репозитории с кодом. Если проблема обнаружится на последней стадии, то значительная часть изменений может быть утеряна при выборке во время diff.&lt;br /&gt;
&lt;br /&gt;
==1. Установка PHP Code Sniffer (phpcs)==&lt;br /&gt;
===Composer===&lt;br /&gt;
PHP Code Sniffer доступен через Composer. Он может быть установлен в рамках всей системы следующей командой:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;composer global require squizlabs/php_codesniffer &amp;quot;~2.8&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
На &#039;&#039;&#039;Linux&#039;&#039;&#039; PHP Code Sniffer (phpcs) будет установлен в папку вашего пользователя: &lt;br /&gt;
* Символическая ссылка: &amp;lt;tt&amp;gt;~/.composer/vendor/bin/phpcs&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Файл: &amp;lt;tt&amp;gt;~/.composer/vendor/squizlabs/php_codesniffer/scripts/phpcs&amp;lt;/tt&amp;gt;&lt;br /&gt;
Для создания символической ссылки, используйте командную строку: &amp;lt;code&amp;gt;&lt;br /&gt;
$ sudo ln -s ~/.config/composer/vendor/squizlabs/php_codesniffer/scripts /usr/bin/phpcs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
или (например OpenSuse)&lt;br /&gt;
* Символическая ссылка: &amp;lt;tt&amp;gt;~/.config/composer/vendor/bin/phpcs&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Файл: &amp;lt;tt&amp;gt;~/.config/composer/vendor/squizlabs/php_codesniffer/scripts/phpcs&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На &#039;&#039;&#039;Windows&#039;&#039;&#039; PHP Code Sniffer (phpcs) будет установлен в папку вашего пользователя:&lt;br /&gt;
* Символическая ссылка: &amp;lt;tt&amp;gt;c:\Users\Username\AppData\Roaming\Composer\vendor\bin\phpcs&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Файл: &amp;lt;tt&amp;gt;c:\Users\Username\AppData\Roaming\Composer\vendor\squizlabs\php_codesniffer\scripts\phpcs&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Добавление директории bin composer к переменной $PATH ===&lt;br /&gt;
Для того, чтобы запускать PHP Code sniffer откуда угодно в командной строке Linux или Mac, необходимо добавить &amp;lt;tt&amp;gt;.composer/vendor/bin&amp;lt;/tt&amp;gt; к вашей переменной $PATH.&lt;br /&gt;
Для того, чтобы зафиксировать это на постоянной основе, отредактируйте стартовый файл оболочки, например .profile или .bash_profile, в зависимости от того, какую оболочку вы используете (echo $SHELL покажет вам, какую вы используете).&lt;br /&gt;
&lt;br /&gt;
Добавьте следующую строку в файл:&lt;br /&gt;
&amp;lt;tt&amp;gt;export PATH=$PATH:~/.composer/vendor/bin&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В качестве альтернативы вы можете создать симовлическую ссылку в папке bin:&lt;br /&gt;
&amp;lt;tt&amp;gt;ln -s ~/.composer/vendor/bin/phpcs /usr/local/bin/phpcs&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==2. Установка Joomla Coding Standards==&lt;br /&gt;
Для того, чтобы PHP Code Sniffer (phpcs) начал &amp;quot;нюхать&amp;quot; (проверять) ваши проекты Joomla на правильный стиль оформления кода, вам необходимо установить Joomla Coding Standards (стандарты оформления кода в Joomla).&lt;br /&gt;
&lt;br /&gt;
Используя composer, мы можем запустить:&lt;br /&gt;
&amp;lt;tt&amp;gt;composer global require joomla/coding-standards &amp;quot;~2.0@alpha&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Обратите внимание на &amp;lt;tt&amp;gt;@alpha&amp;lt;/tt&amp;gt;. Всё потому, что стандарт всё ещё в стадии альфа, и мы должны позволить установку кода, со статусом alpha. Если мы не укажем @alpha, то стандарты не будут установлены и выкинут ошибку.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Your requirements could not be resolved to an installable set of packages.&lt;br /&gt;
&lt;br /&gt;
  Problem 1&lt;br /&gt;
    - The requested package joomla/coding-standards ~2.0 is satisfiable by joomla/coding-standards[2.0.0-alpha, 2.0.0-alpha2, 2.x-dev] but these conflict with your requirements or minimum-stability.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как только установка завершится, стандарт оформления кода будет установлен в глобальную папку composer. Расположение этой папки зависит от вашей операционной системы. Вот некоторые популярные места расположения:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mac / Linux&#039;&#039;&#039;&lt;br /&gt;
 ~/.composer/vendor/joomla/coding-standards/&lt;br /&gt;
&lt;br /&gt;
 ~/.config/composer/vendor/joomla/coding-standards/&lt;br /&gt;
&#039;&#039;&#039;Windows&#039;&#039;&#039;&lt;br /&gt;
 c:\Users\Username\AppData\Roaming\Composer\vendor\joomla\coding-standards\&lt;br /&gt;
Так это выглядит при использовании Composer в Windows.&lt;br /&gt;
&lt;br /&gt;
Если вы не можете найти ни одну из выше указанных папок, то учите, что папка, которую вы ищите, заканчивается на &#039;&#039;&#039;\joomla\coding-standards\&#039;&#039;&#039;&lt;br /&gt;
И наконец, мы должны дать понятьCode Sniffer, что стандарты оформления кода Joomla существуют.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Установка Joomla Coding Standards&#039;&#039;&#039;&lt;br /&gt;
# Проверьте, пути установлены или нет, запустив команду &amp;lt;tt&amp;gt;phpcs --config-show&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Вы можете получить ответ, который выглядит вот так: &amp;lt;tt&amp;gt;installed_paths: /path/to/installation&amp;lt;/tt&amp;gt;&lt;br /&gt;
# На шаге 2, если вы видите &#039;&#039;&#039;installed_paths&#039;&#039;&#039;, скопируйте их&lt;br /&gt;
# Установите путь Joomla Coding Standards в phpcs вызовом команды &amp;lt;tt&amp;gt;phpcs --config-set installed_paths /Users/user/.composer/vendor/joomla/coding-standards&amp;lt;/tt&amp;gt;. Если вы скопировали пути на шаге 2, включите их здесь, разделяя запятой. Команда будет выглядеть как &amp;lt;tt&amp;gt;phpcs --config-set installed_paths [/to/path1],[/to/path2],[/Users/user/.composer/vendor/joomla/coding-standards]&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Убедитесь, что путь установлен верно, запустив команду &amp;lt;tt&amp;gt;phpcs --config-show&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Убедитесь, что phpcs видит стандарт оформления кода Joomla, запустив команду &amp;lt;tt&amp;gt;phpcs -i&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Вывод должен выглядеть вот так: &amp;lt;tt&amp;gt;The installed coding standards are MySource, PEAR, PHPCS, PSR1, PSR2, Squiz, Zend and Joomla&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Использование ==&lt;br /&gt;
Вы вызываете кастомный стандарт через&lt;br /&gt;
&amp;lt;tt&amp;gt;phpcs --standard=Joomla file/to/sniff&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для тестирования файлов platform со стандартом разработки platform, используйте&lt;br /&gt;
&amp;lt;tt&amp;gt;phpcs --standard=build/phpcs/Joomla path/to/file/or/folder&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дополнительная документация по использованию phpcs доступна здесь: [http://pear.php.net/package/PHP_CodeSniffer/docs]&lt;br /&gt;
&lt;br /&gt;
==3. Интеграция с IDE ==&lt;br /&gt;
Все любять консоль. Это, без сомнения, самый эффективный путь делать то, что захочется. Но иногда и гуру Linux нуждаются в небольшом комфорте.&lt;br /&gt;
&lt;br /&gt;
К счастью, для PhpStorm, Eclipse и Netbeans существует плагин, который интегрирует CodeSniffer в вашу любимую IDE, поэтому нарушения стандартов оформления кода показываются как &amp;quot;обычные&amp;quot; ошибки.&lt;br /&gt;
&lt;br /&gt;
=== PhpStorm ===&lt;br /&gt;
Code Sniffer поддерживается PhpStorm из коробки. Зайдите в Settings, и в Editor {{rarr}} Inspections вы увидите список установленных снифферов.&lt;br /&gt;
==== Установите путь до Code Sniffer ====&lt;br /&gt;
# Откройте Settings (CTRL-ALT-S / CMD-,)&lt;br /&gt;
# Перейдите в Languages &amp;amp; Frameworks&lt;br /&gt;
# Щёлкните на PHP&lt;br /&gt;
# Щёлкните на Quality Tools&lt;br /&gt;
# Щёлкните на область PHP CS Fixer&lt;br /&gt;
# Настройка по умолчанию установлена в Local&lt;br /&gt;
# Щёлкните на 3 точки за ней для открытия настроечного экрана&lt;br /&gt;
# Первая опция и есть путь PHP Code Sniffer (phpcs)&lt;br /&gt;
# Щёлкните на 3 точки за путём для выбора расположения файла phpcs. Смотрите выше, где может быть установлен phpcs.&lt;br /&gt;
# Щёлкните на Validate, чтобы убедиться в том, что путь верен и phpcs работает&lt;br /&gt;
# Щёлкните OK&lt;br /&gt;
&lt;br /&gt;
===== Активизация Joomla Code Style =====&lt;br /&gt;
# Откройте Settings (CTRL-ALT-S / CMD-,)&lt;br /&gt;
# Перейдите в Editor&lt;br /&gt;
# Щёлкните на Inspections&lt;br /&gt;
# В списке перейдите к PHP&lt;br /&gt;
# Щёлкните на PHP Code Sniffer Validation&lt;br /&gt;
# Щёлкните на чекбокс за ним, для активации&lt;br /&gt;
# Щёлкните на кнопку Reload (2 стрелки) для принудительной перезагрузки правил с диска&lt;br /&gt;
# Теперь в списке должна стать доступной Joomla. Смотрите на картинке:{{-}}[[File:PhpStorm8CodeSniffer.png|PHPStorm CodeSniffer|500px]]&lt;br /&gt;
# Щёлкните OK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== PHP PSR-0, PSR-1 и PSR-2 ====&lt;br /&gt;
* https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md&lt;br /&gt;
* https://github.com/pmjones/fig-standards/blob/psr-1-style-guide/proposed/PSR-1-basic.md&lt;br /&gt;
* https://github.com/pmjones/fig-standards/blob/psr-1-style-guide/proposed/PSR-2-advanced.md&lt;br /&gt;
&lt;br /&gt;
===== Использование PHP PSR-1 и PSR-2 Sniff =====&lt;br /&gt;
CodeSniffer также может быть использован и для PSR-x Coding Standard. В этом случае вы просто выбираете другой стандарт, а не Joomla.&lt;br /&gt;
===== Использование стиля офрмления кода Joomla =====&lt;br /&gt;
Было бы неплохо проверять, что стандарты действительно учитываются. А ещё лучше, если бы PhpStorm помогал вам с форматированием по мере того, как вы пишете код.&lt;br /&gt;
Для использования стиля оформления кода в PhpStorm&lt;br /&gt;
# Откройте Settings (CTRL-ALT-S / CMD-,)&lt;br /&gt;
# Пройдите в Editor&lt;br /&gt;
# Щёлкните на Code Style&lt;br /&gt;
# Выберите Joomla в списке Scheme&lt;br /&gt;
&lt;br /&gt;
==== PhpStorm / Альтернативный метод ====&lt;br /&gt;
&#039;&#039;&#039;Примечание&#039;&#039;&#039;: Метод &#039;&#039;&#039;просрочен&#039;&#039;&#039;, но может быть полезен, если вы ищете возможности другой интегрции. Он также демонстрирует использование внешних инструментов в PhpStorm - так что &#039;&#039;не стоит его удалять&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Code Sniffer также может быть легко интегрирован как внешний инструмент. PhpStorm отобразит вывод в консоли, в том числе ссылки с возможностью щелчка, содержащие номера строк и столбцов с файлами, которые содержат ошибки.&lt;br /&gt;
&lt;br /&gt;
* Щёлкните на &amp;quot;Settings&amp;quot; и найдите &amp;quot;External tools&amp;quot;&lt;br /&gt;
* Щёлкните &amp;quot;Add...&amp;quot;&lt;br /&gt;
* Выберите &amp;quot;Name&amp;quot;, &amp;quot;Group&amp;quot; and &amp;quot;Description&amp;quot;.&lt;br /&gt;
* Щёлкните &amp;quot;Output Filters&amp;quot;&lt;br /&gt;
** Щёлкните &amp;quot;Add...&amp;quot;, выберите название и введите в &amp;quot;Regular expression to match output&amp;quot; значение: &amp;lt;tt&amp;gt;$FILE_PATH$:$LINE$:$COLUMN$&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;quot;Program&amp;quot;: найдите в вашей системе исполняемый файл phpcs. Вы должны выбрать путь до &#039;&#039;phpcs.bat&#039;&#039; из установленного пакета PHP_CodeSniffer PEAR&lt;br /&gt;
** Для Unix систем, путём будет что-то вроде /usr/bin/phpcs&lt;br /&gt;
** В XAMPP (windows), вы можете найти файл в корне папки PHP (например, C:\xampp\php\phpcs.bat)&lt;br /&gt;
* &amp;quot;Parameters&amp;quot;:&lt;br /&gt;
** &amp;lt;tt&amp;gt;--standard=&amp;lt;path/to/joomla-platform&amp;gt;/build/phpcs/Joomla&amp;lt;/tt&amp;gt; Путь до стандартов оформления кода Joomla.&lt;br /&gt;
** &amp;lt;tt&amp;gt;--report=emacs&amp;lt;/tt&amp;gt; Это сгенерирует простой список, содержащий ссылки на файлы ошибок&lt;br /&gt;
** Опционально вы можете указать &amp;lt;tt&amp;gt;-p&amp;lt;/tt&amp;gt; для &amp;quot;progress&amp;quot; или &amp;lt;tt&amp;gt;-n&amp;lt;/tt&amp;gt; для &amp;quot;errors only&amp;quot;.&lt;br /&gt;
** Последним параметром должен быть &amp;lt;tt&amp;gt;$FilePath$&amp;lt;/tt&amp;gt;, который должен указывать на папку или файл, которые вы хотите проверить.&lt;br /&gt;
&lt;br /&gt;
Типичная строка &amp;quot;Parameters&amp;quot; на Linux системах может выглядеть вот так:&lt;br /&gt;
&amp;lt;pre&amp;gt;-np --standard=/home/elkuku/libs/joomla/build/phpcs/Joomla --report=emacs $FilePath$&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь вы можете сделать правый щелчок на любом файле или папке и выбрать сниффер из контекстного меню. Или можете добавить кнопку на панель инструментов с красивым лого Joomla. [[File:icon-16-joomla.png]].&lt;br /&gt;
&lt;br /&gt;
=== Netbeans ===&lt;br /&gt;
У Netbeans функциональность сниффера встроена в ядро системы.&lt;br /&gt;
&lt;br /&gt;
# Запустите Netbeans IDE&lt;br /&gt;
# Откройте Tools =&amp;gt; Options =&amp;gt; PHP =&amp;gt; Code Analysis =&amp;gt; Code Sniffer&lt;br /&gt;
# Вы должны установить путь до &#039;&#039;phpcs.bat&#039;&#039; из установленного пакета PHP_CodeSniffer PEAR&lt;br /&gt;
#* Для Unix систем, путём будет что-то вроде /usr/bin/phpcs&lt;br /&gt;
#* В XAMPP (windows), вы можете найти файл в корне папки PHP (например, C:\xampp\php\phpcs.bat)&lt;br /&gt;
# Как &amp;quot;Default Standard,&amp;quot; выберите &amp;quot;Joomla&amp;quot;&lt;br /&gt;
# Теперь можете щёлкнуть на &#039;&#039;OK&#039;&#039;&lt;br /&gt;
# Откройте из верхнего меню Source =&amp;gt; Inspect...&lt;br /&gt;
# Наслаждайтесь&lt;br /&gt;
&lt;br /&gt;
=== Eclipse ===&lt;br /&gt;
[[Image:eclipse_pti.png|left|thumb|200px|1) Eclipse PTI]]&lt;br /&gt;
{{-}}&lt;br /&gt;
Установка следует обычному шаблону:&lt;br /&gt;
# &amp;lt;tt&amp;gt;Help =&amp;gt; Install New Software...&amp;lt;/tt&amp;gt;&lt;br /&gt;
# &amp;lt;tt&amp;gt;Work with:&amp;lt;/tt&amp;gt; Заполните одним из адресов URLs, которые можно найти здесь: http://www.phpsrc.org/eclipse/pti/&lt;br /&gt;
# Выберите нужный инструмент&lt;br /&gt;
# Перезапустите Eclipse.&lt;br /&gt;
&lt;br /&gt;
[[Image:eclipse_pti_settings.png|right|thumb|150px|2) Настройки Eclipse PTI]]&lt;br /&gt;
Теперь вы можете выполнять проверку кода согласно таким стандартам как PEAR, Zend и т.п..&lt;br /&gt;
&lt;br /&gt;
Для выполения проверки собственных стандартов, укажите расположение и активизируйте (смотрите скриншот 2)&lt;br /&gt;
# &amp;lt;tt&amp;gt;Window =&amp;gt; Preferences&amp;lt;/tt&amp;gt;&lt;br /&gt;
# &amp;lt;tt&amp;gt;PHP Tools =&amp;gt; PHP CodeSniffer&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Удачного сниффинга.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Geany ===&lt;br /&gt;
* Откройте PHP файл. (Иначе меню build недоступно.) Смотрите [http://static.xscreenshot.com/2016/07/13/08/screen_6bc0692cf995702a1e379b39643d0c2d Screenshot]&lt;br /&gt;
* В верхнем меню выберите Build-&amp;gt;Set Build Commands.&lt;br /&gt;
* Выберите второе поле и назовите его по своему желанию. Введите этот код в Command: &amp;lt;code&amp;gt;phpcs --standard=Joomla &amp;quot;%f&amp;quot; | sed -e &#039;s/^/%f |/&#039; | egrep &#039;WARNING|ERROR&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Введите этот код в поле Error Regular Expression: &amp;lt;code&amp;gt;(.+) [|]\s+([0-9]+)&amp;lt;/code&amp;gt; See this  [http://view.xscreenshot.com/ef00820cf7c017ce659c8e9f0b02d3ae Screenshot]&lt;br /&gt;
* Выберите OK.&lt;br /&gt;
* Если окно Message не открыто, отобразите его, выбрав в верхнем меню View.&lt;br /&gt;
* При просмотре любого PHP файла, нажмите F9 для просмотра найденных ошибок. [http://view.xscreenshot.com/8704b9fd1bda3f841364a0ffa28a54ae Screenshot]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Atom ===&lt;br /&gt;
* Установите phpcs и стандарты Joomla, как описано выше.&lt;br /&gt;
* В &#039;&#039;&#039;Atom &amp;gt; Preferences &amp;gt; Install&#039;&#039;&#039; установите &#039;&#039;&#039;linter-phpcs&#039;&#039;&#039; и все его требования.&lt;br /&gt;
* В &#039;&#039;&#039;Atom &amp;gt; Preferences &amp;gt; Packages &amp;gt; linter-phpcs &amp;gt; Settings&#039;&#039;&#039; настройте&lt;br /&gt;
** &#039;&#039;&#039;Executable Path&#039;&#039;&#039; путь до вашего phpcs&lt;br /&gt;
** &#039;&#039;&#039;Code Standard Or Config File&#039;&#039;&#039;: Joomla&lt;br /&gt;
** &#039;&#039;&#039;Tab Width&#039;&#039;&#039;: 4&lt;br /&gt;
&lt;br /&gt;
=== Ссылки ===&lt;br /&gt;
* https://github.com/joomla/coding-standards - Joomla! Coding Standards&lt;br /&gt;
* http://www.phpsrc.org/ PTI - инструменты интеграции PHP для Eclipse&lt;br /&gt;
* http://sourceforge.net/projects/phpmdnb/ Плагин Netbeans&lt;br /&gt;
* http://hakre.wordpress.com/2010/03/06/php-code-sniffer-eclipse-and-wordpress/ - Отличный материал. Просто поменяйте &amp;quot;Wordpress&amp;quot; на &amp;quot;Joomla!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[Category:Bug Squad{{#translation:}}]]&lt;br /&gt;
[[Category:IDE (Integrated development environment){{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Joomla_CodeSniffer/79/ru&amp;diff=645125</id>
		<title>Translations:Joomla CodeSniffer/79/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Joomla_CodeSniffer/79/ru&amp;diff=645125"/>
		<updated>2020-01-03T16:10:47Z</updated>

		<summary type="html">&lt;p&gt;B2z: Created page with &amp;quot;* Установите phpcs и стандарты Joomla, как описано выше. * В &amp;#039;&amp;#039;&amp;#039;Atom &amp;gt; Preferences &amp;gt; Install&amp;#039;&amp;#039;&amp;#039; установите &amp;#039;&amp;#039;&amp;#039;linter-phpcs&amp;#039;&amp;#039;&amp;#039; и...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Установите phpcs и стандарты Joomla, как описано выше.&lt;br /&gt;
* В &#039;&#039;&#039;Atom &amp;gt; Preferences &amp;gt; Install&#039;&#039;&#039; установите &#039;&#039;&#039;linter-phpcs&#039;&#039;&#039; и все его требования.&lt;br /&gt;
* В &#039;&#039;&#039;Atom &amp;gt; Preferences &amp;gt; Packages &amp;gt; linter-phpcs &amp;gt; Settings&#039;&#039;&#039; настройте&lt;br /&gt;
** &#039;&#039;&#039;Executable Path&#039;&#039;&#039; путь до вашего phpcs&lt;br /&gt;
** &#039;&#039;&#039;Code Standard Or Config File&#039;&#039;&#039;: Joomla&lt;br /&gt;
** &#039;&#039;&#039;Tab Width&#039;&#039;&#039;: 4&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Joomla_CodeSniffer/78/ru&amp;diff=645124</id>
		<title>Translations:Joomla CodeSniffer/78/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Joomla_CodeSniffer/78/ru&amp;diff=645124"/>
		<updated>2020-01-03T16:09:40Z</updated>

		<summary type="html">&lt;p&gt;B2z: Created page with &amp;quot;=== Atom ===&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Atom ===&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Joomla_CodeSniffer/ru&amp;diff=645123</id>
		<title>Joomla CodeSniffer/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Joomla_CodeSniffer/ru&amp;diff=645123"/>
		<updated>2020-01-03T16:09:24Z</updated>

		<summary type="html">&lt;p&gt;B2z: Created page with &amp;quot;Code Sniffer также может быть легко интегрирован как внешний инструмент. PhpStorm отобразит вывод в конс...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Анализатор кода для Joomla ==&lt;br /&gt;
Это кастомный стандарт оформления кода для PHP CodeSniffer, который пытается привести всё к единому стандарту оформления кода в Joomla. В этом материале описывается, как настроить автоматическую проверку стиля оформления кода.&lt;br /&gt;
# Установка PHP CodeSniffer (phpcs).&lt;br /&gt;
# Клонирование Joomla Code Style (для использования с phpcs).&lt;br /&gt;
# Настройки вашей IDE для работы с PHP CodeSniffer и Joomla Code Style.&lt;br /&gt;
&lt;br /&gt;
[[File:CodeSnifferInAction.jpg|center|thumb|300px|PHP Code Sniffer in action]]&lt;br /&gt;
&lt;br /&gt;
==Зачем?==&lt;br /&gt;
*Понятная и устойчивая практика написания кода заставляет выглядеть файлы более профессионально. Конфликтующие стили в том же проекте (или ещё хуже, в том же файле) не только выглядят небрежно, но и поощряют ещё большую небрежность.&lt;br /&gt;
*Когда весь код соответствует единому стандарту, плохой код намного легче обнаружить.&lt;br /&gt;
*Для того, кто только начал разбираться с файлом в проекте, намного проще найти и исправить ошибки или расширить функциональность.&lt;br /&gt;
*Если нет постоянно поддерживаемого стандарта, разработчики будут форматировать текст как им удобнее. Это приводит к широкому диапазону изменений в репозитории с кодом. Если проблема обнаружится на последней стадии, то значительная часть изменений может быть утеряна при выборке во время diff.&lt;br /&gt;
&lt;br /&gt;
==1. Установка PHP Code Sniffer (phpcs)==&lt;br /&gt;
===Composer===&lt;br /&gt;
PHP Code Sniffer доступен через Composer. Он может быть установлен в рамках всей системы следующей командой:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;composer global require squizlabs/php_codesniffer &amp;quot;~2.8&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
На &#039;&#039;&#039;Linux&#039;&#039;&#039; PHP Code Sniffer (phpcs) будет установлен в папку вашего пользователя: &lt;br /&gt;
* Символическая ссылка: &amp;lt;tt&amp;gt;~/.composer/vendor/bin/phpcs&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Файл: &amp;lt;tt&amp;gt;~/.composer/vendor/squizlabs/php_codesniffer/scripts/phpcs&amp;lt;/tt&amp;gt;&lt;br /&gt;
Для создания символической ссылки, используйте командную строку: &amp;lt;code&amp;gt;&lt;br /&gt;
$ sudo ln -s ~/.config/composer/vendor/squizlabs/php_codesniffer/scripts /usr/bin/phpcs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
или (например OpenSuse)&lt;br /&gt;
* Символическая ссылка: &amp;lt;tt&amp;gt;~/.config/composer/vendor/bin/phpcs&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Файл: &amp;lt;tt&amp;gt;~/.config/composer/vendor/squizlabs/php_codesniffer/scripts/phpcs&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На &#039;&#039;&#039;Windows&#039;&#039;&#039; PHP Code Sniffer (phpcs) будет установлен в папку вашего пользователя:&lt;br /&gt;
* Символическая ссылка: &amp;lt;tt&amp;gt;c:\Users\Username\AppData\Roaming\Composer\vendor\bin\phpcs&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Файл: &amp;lt;tt&amp;gt;c:\Users\Username\AppData\Roaming\Composer\vendor\squizlabs\php_codesniffer\scripts\phpcs&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Добавление директории bin composer к переменной $PATH ===&lt;br /&gt;
Для того, чтобы запускать PHP Code sniffer откуда угодно в командной строке Linux или Mac, необходимо добавить &amp;lt;tt&amp;gt;.composer/vendor/bin&amp;lt;/tt&amp;gt; к вашей переменной $PATH.&lt;br /&gt;
Для того, чтобы зафиксировать это на постоянной основе, отредактируйте стартовый файл оболочки, например .profile или .bash_profile, в зависимости от того, какую оболочку вы используете (echo $SHELL покажет вам, какую вы используете).&lt;br /&gt;
&lt;br /&gt;
Добавьте следующую строку в файл:&lt;br /&gt;
&amp;lt;tt&amp;gt;export PATH=$PATH:~/.composer/vendor/bin&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В качестве альтернативы вы можете создать симовлическую ссылку в папке bin:&lt;br /&gt;
&amp;lt;tt&amp;gt;ln -s ~/.composer/vendor/bin/phpcs /usr/local/bin/phpcs&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==2. Установка Joomla Coding Standards==&lt;br /&gt;
Для того, чтобы PHP Code Sniffer (phpcs) начал &amp;quot;нюхать&amp;quot; (проверять) ваши проекты Joomla на правильный стиль оформления кода, вам необходимо установить Joomla Coding Standards (стандарты оформления кода в Joomla).&lt;br /&gt;
&lt;br /&gt;
Используя composer, мы можем запустить:&lt;br /&gt;
&amp;lt;tt&amp;gt;composer global require joomla/coding-standards &amp;quot;~2.0@alpha&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Обратите внимание на &amp;lt;tt&amp;gt;@alpha&amp;lt;/tt&amp;gt;. Всё потому, что стандарт всё ещё в стадии альфа, и мы должны позволить установку кода, со статусом alpha. Если мы не укажем @alpha, то стандарты не будут установлены и выкинут ошибку.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Your requirements could not be resolved to an installable set of packages.&lt;br /&gt;
&lt;br /&gt;
  Problem 1&lt;br /&gt;
    - The requested package joomla/coding-standards ~2.0 is satisfiable by joomla/coding-standards[2.0.0-alpha, 2.0.0-alpha2, 2.x-dev] but these conflict with your requirements or minimum-stability.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как только установка завершится, стандарт оформления кода будет установлен в глобальную папку composer. Расположение этой папки зависит от вашей операционной системы. Вот некоторые популярные места расположения:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mac / Linux&#039;&#039;&#039;&lt;br /&gt;
 ~/.composer/vendor/joomla/coding-standards/&lt;br /&gt;
&lt;br /&gt;
 ~/.config/composer/vendor/joomla/coding-standards/&lt;br /&gt;
&#039;&#039;&#039;Windows&#039;&#039;&#039;&lt;br /&gt;
 c:\Users\Username\AppData\Roaming\Composer\vendor\joomla\coding-standards\&lt;br /&gt;
Так это выглядит при использовании Composer в Windows.&lt;br /&gt;
&lt;br /&gt;
Если вы не можете найти ни одну из выше указанных папок, то учите, что папка, которую вы ищите, заканчивается на &#039;&#039;&#039;\joomla\coding-standards\&#039;&#039;&#039;&lt;br /&gt;
И наконец, мы должны дать понятьCode Sniffer, что стандарты оформления кода Joomla существуют.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Установка Joomla Coding Standards&#039;&#039;&#039;&lt;br /&gt;
# Проверьте, пути установлены или нет, запустив команду &amp;lt;tt&amp;gt;phpcs --config-show&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Вы можете получить ответ, который выглядит вот так: &amp;lt;tt&amp;gt;installed_paths: /path/to/installation&amp;lt;/tt&amp;gt;&lt;br /&gt;
# На шаге 2, если вы видите &#039;&#039;&#039;installed_paths&#039;&#039;&#039;, скопируйте их&lt;br /&gt;
# Установите путь Joomla Coding Standards в phpcs вызовом команды &amp;lt;tt&amp;gt;phpcs --config-set installed_paths /Users/user/.composer/vendor/joomla/coding-standards&amp;lt;/tt&amp;gt;. Если вы скопировали пути на шаге 2, включите их здесь, разделяя запятой. Команда будет выглядеть как &amp;lt;tt&amp;gt;phpcs --config-set installed_paths [/to/path1],[/to/path2],[/Users/user/.composer/vendor/joomla/coding-standards]&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Убедитесь, что путь установлен верно, запустив команду &amp;lt;tt&amp;gt;phpcs --config-show&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Убедитесь, что phpcs видит стандарт оформления кода Joomla, запустив команду &amp;lt;tt&amp;gt;phpcs -i&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Вывод должен выглядеть вот так: &amp;lt;tt&amp;gt;The installed coding standards are MySource, PEAR, PHPCS, PSR1, PSR2, Squiz, Zend and Joomla&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Использование ==&lt;br /&gt;
Вы вызываете кастомный стандарт через&lt;br /&gt;
&amp;lt;tt&amp;gt;phpcs --standard=Joomla file/to/sniff&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для тестирования файлов platform со стандартом разработки platform, используйте&lt;br /&gt;
&amp;lt;tt&amp;gt;phpcs --standard=build/phpcs/Joomla path/to/file/or/folder&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дополнительная документация по использованию phpcs доступна здесь: [http://pear.php.net/package/PHP_CodeSniffer/docs]&lt;br /&gt;
&lt;br /&gt;
==3. Интеграция с IDE ==&lt;br /&gt;
Все любять консоль. Это, без сомнения, самый эффективный путь делать то, что захочется. Но иногда и гуру Linux нуждаются в небольшом комфорте.&lt;br /&gt;
&lt;br /&gt;
К счастью, для PhpStorm, Eclipse и Netbeans существует плагин, который интегрирует CodeSniffer в вашу любимую IDE, поэтому нарушения стандартов оформления кода показываются как &amp;quot;обычные&amp;quot; ошибки.&lt;br /&gt;
&lt;br /&gt;
=== PhpStorm ===&lt;br /&gt;
Code Sniffer поддерживается PhpStorm из коробки. Зайдите в Settings, и в Editor {{rarr}} Inspections вы увидите список установленных снифферов.&lt;br /&gt;
==== Установите путь до Code Sniffer ====&lt;br /&gt;
# Откройте Settings (CTRL-ALT-S / CMD-,)&lt;br /&gt;
# Перейдите в Languages &amp;amp; Frameworks&lt;br /&gt;
# Щёлкните на PHP&lt;br /&gt;
# Щёлкните на Quality Tools&lt;br /&gt;
# Щёлкните на область PHP CS Fixer&lt;br /&gt;
# Настройка по умолчанию установлена в Local&lt;br /&gt;
# Щёлкните на 3 точки за ней для открытия настроечного экрана&lt;br /&gt;
# Первая опция и есть путь PHP Code Sniffer (phpcs)&lt;br /&gt;
# Щёлкните на 3 точки за путём для выбора расположения файла phpcs. Смотрите выше, где может быть установлен phpcs.&lt;br /&gt;
# Щёлкните на Validate, чтобы убедиться в том, что путь верен и phpcs работает&lt;br /&gt;
# Щёлкните OK&lt;br /&gt;
&lt;br /&gt;
===== Активизация Joomla Code Style =====&lt;br /&gt;
# Откройте Settings (CTRL-ALT-S / CMD-,)&lt;br /&gt;
# Перейдите в Editor&lt;br /&gt;
# Щёлкните на Inspections&lt;br /&gt;
# В списке перейдите к PHP&lt;br /&gt;
# Щёлкните на PHP Code Sniffer Validation&lt;br /&gt;
# Щёлкните на чекбокс за ним, для активации&lt;br /&gt;
# Щёлкните на кнопку Reload (2 стрелки) для принудительной перезагрузки правил с диска&lt;br /&gt;
# Теперь в списке должна стать доступной Joomla. Смотрите на картинке:{{-}}[[File:PhpStorm8CodeSniffer.png|PHPStorm CodeSniffer|500px]]&lt;br /&gt;
# Щёлкните OK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== PHP PSR-0, PSR-1 и PSR-2 ====&lt;br /&gt;
* https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md&lt;br /&gt;
* https://github.com/pmjones/fig-standards/blob/psr-1-style-guide/proposed/PSR-1-basic.md&lt;br /&gt;
* https://github.com/pmjones/fig-standards/blob/psr-1-style-guide/proposed/PSR-2-advanced.md&lt;br /&gt;
&lt;br /&gt;
===== Использование PHP PSR-1 и PSR-2 Sniff =====&lt;br /&gt;
CodeSniffer также может быть использован и для PSR-x Coding Standard. В этом случае вы просто выбираете другой стандарт, а не Joomla.&lt;br /&gt;
===== Использование стиля офрмления кода Joomla =====&lt;br /&gt;
Было бы неплохо проверять, что стандарты действительно учитываются. А ещё лучше, если бы PhpStorm помогал вам с форматированием по мере того, как вы пишете код.&lt;br /&gt;
Для использования стиля оформления кода в PhpStorm&lt;br /&gt;
# Откройте Settings (CTRL-ALT-S / CMD-,)&lt;br /&gt;
# Пройдите в Editor&lt;br /&gt;
# Щёлкните на Code Style&lt;br /&gt;
# Выберите Joomla в списке Scheme&lt;br /&gt;
&lt;br /&gt;
==== PhpStorm / Альтернативный метод ====&lt;br /&gt;
&#039;&#039;&#039;Примечание&#039;&#039;&#039;: Метод &#039;&#039;&#039;просрочен&#039;&#039;&#039;, но может быть полезен, если вы ищете возможности другой интегрции. Он также демонстрирует использование внешних инструментов в PhpStorm - так что &#039;&#039;не стоит его удалять&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Code Sniffer также может быть легко интегрирован как внешний инструмент. PhpStorm отобразит вывод в консоли, в том числе ссылки с возможностью щелчка, содержащие номера строк и столбцов с файлами, которые содержат ошибки.&lt;br /&gt;
&lt;br /&gt;
* Щёлкните на &amp;quot;Settings&amp;quot; и найдите &amp;quot;External tools&amp;quot;&lt;br /&gt;
* Щёлкните &amp;quot;Add...&amp;quot;&lt;br /&gt;
* Выберите &amp;quot;Name&amp;quot;, &amp;quot;Group&amp;quot; and &amp;quot;Description&amp;quot;.&lt;br /&gt;
* Щёлкните &amp;quot;Output Filters&amp;quot;&lt;br /&gt;
** Щёлкните &amp;quot;Add...&amp;quot;, выберите название и введите в &amp;quot;Regular expression to match output&amp;quot; значение: &amp;lt;tt&amp;gt;$FILE_PATH$:$LINE$:$COLUMN$&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;quot;Program&amp;quot;: найдите в вашей системе исполняемый файл phpcs. Вы должны выбрать путь до &#039;&#039;phpcs.bat&#039;&#039; из установленного пакета PHP_CodeSniffer PEAR&lt;br /&gt;
** Для Unix систем, путём будет что-то вроде /usr/bin/phpcs&lt;br /&gt;
** В XAMPP (windows), вы можете найти файл в корне папки PHP (например, C:\xampp\php\phpcs.bat)&lt;br /&gt;
* &amp;quot;Parameters&amp;quot;:&lt;br /&gt;
** &amp;lt;tt&amp;gt;--standard=&amp;lt;path/to/joomla-platform&amp;gt;/build/phpcs/Joomla&amp;lt;/tt&amp;gt; Путь до стандартов оформления кода Joomla.&lt;br /&gt;
** &amp;lt;tt&amp;gt;--report=emacs&amp;lt;/tt&amp;gt; Это сгенерирует простой список, содержащий ссылки на файлы ошибок&lt;br /&gt;
** Опционально вы можете указать &amp;lt;tt&amp;gt;-p&amp;lt;/tt&amp;gt; для &amp;quot;progress&amp;quot; или &amp;lt;tt&amp;gt;-n&amp;lt;/tt&amp;gt; для &amp;quot;errors only&amp;quot;.&lt;br /&gt;
** Последним параметром должен быть &amp;lt;tt&amp;gt;$FilePath$&amp;lt;/tt&amp;gt;, который должен указывать на папку или файл, которые вы хотите проверить.&lt;br /&gt;
&lt;br /&gt;
Типичная строка &amp;quot;Parameters&amp;quot; на Linux системах может выглядеть вот так:&lt;br /&gt;
&amp;lt;pre&amp;gt;-np --standard=/home/elkuku/libs/joomla/build/phpcs/Joomla --report=emacs $FilePath$&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь вы можете сделать правый щелчок на любом файле или папке и выбрать сниффер из контекстного меню. Или можете добавить кнопку на панель инструментов с красивым лого Joomla. [[File:icon-16-joomla.png]].&lt;br /&gt;
&lt;br /&gt;
=== Netbeans ===&lt;br /&gt;
У Netbeans функциональность сниффера встроена в ядро системы.&lt;br /&gt;
&lt;br /&gt;
# Запустите Netbeans IDE&lt;br /&gt;
# Откройте Tools =&amp;gt; Options =&amp;gt; PHP =&amp;gt; Code Analysis =&amp;gt; Code Sniffer&lt;br /&gt;
# Вы должны установить путь до &#039;&#039;phpcs.bat&#039;&#039; из установленного пакета PHP_CodeSniffer PEAR&lt;br /&gt;
#* Для Unix систем, путём будет что-то вроде /usr/bin/phpcs&lt;br /&gt;
#* В XAMPP (windows), вы можете найти файл в корне папки PHP (например, C:\xampp\php\phpcs.bat)&lt;br /&gt;
# Как &amp;quot;Default Standard,&amp;quot; выберите &amp;quot;Joomla&amp;quot;&lt;br /&gt;
# Теперь можете щёлкнуть на &#039;&#039;OK&#039;&#039;&lt;br /&gt;
# Откройте из верхнего меню Source =&amp;gt; Inspect...&lt;br /&gt;
# Наслаждайтесь&lt;br /&gt;
&lt;br /&gt;
=== Eclipse ===&lt;br /&gt;
[[Image:eclipse_pti.png|left|thumb|200px|1) Eclipse PTI]]&lt;br /&gt;
{{-}}&lt;br /&gt;
Установка следует обычному шаблону:&lt;br /&gt;
# &amp;lt;tt&amp;gt;Help =&amp;gt; Install New Software...&amp;lt;/tt&amp;gt;&lt;br /&gt;
# &amp;lt;tt&amp;gt;Work with:&amp;lt;/tt&amp;gt; Заполните одним из адресов URLs, которые можно найти здесь: http://www.phpsrc.org/eclipse/pti/&lt;br /&gt;
# Выберите нужный инструмент&lt;br /&gt;
# Перезапустите Eclipse.&lt;br /&gt;
&lt;br /&gt;
[[Image:eclipse_pti_settings.png|right|thumb|150px|2) Настройки Eclipse PTI]]&lt;br /&gt;
Теперь вы можете выполнять проверку кода согласно таким стандартам как PEAR, Zend и т.п..&lt;br /&gt;
&lt;br /&gt;
Для выполения проверки собственных стандартов, укажите расположение и активизируйте (смотрите скриншот 2)&lt;br /&gt;
# &amp;lt;tt&amp;gt;Window =&amp;gt; Preferences&amp;lt;/tt&amp;gt;&lt;br /&gt;
# &amp;lt;tt&amp;gt;PHP Tools =&amp;gt; PHP CodeSniffer&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Удачного сниффинга.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Geany ===&lt;br /&gt;
* Откройте PHP файл. (Иначе меню build недоступно.) Смотрите [http://static.xscreenshot.com/2016/07/13/08/screen_6bc0692cf995702a1e379b39643d0c2d Screenshot]&lt;br /&gt;
* В верхнем меню выберите Build-&amp;gt;Set Build Commands.&lt;br /&gt;
* Выберите второе поле и назовите его по своему желанию. Введите этот код в Command: &amp;lt;code&amp;gt;phpcs --standard=Joomla &amp;quot;%f&amp;quot; | sed -e &#039;s/^/%f |/&#039; | egrep &#039;WARNING|ERROR&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Введите этот код в поле Error Regular Expression: &amp;lt;code&amp;gt;(.+) [|]\s+([0-9]+)&amp;lt;/code&amp;gt; See this  [http://view.xscreenshot.com/ef00820cf7c017ce659c8e9f0b02d3ae Screenshot]&lt;br /&gt;
* Выберите OK.&lt;br /&gt;
* Если окно Message не открыто, отобразите его, выбрав в верхнем меню View.&lt;br /&gt;
* При просмотре любого PHP файла, нажмите F9 для просмотра найденных ошибок. [http://view.xscreenshot.com/8704b9fd1bda3f841364a0ffa28a54ae Screenshot]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Atom ===&lt;br /&gt;
* Install phpcs and the Joomla standards as described above.&lt;br /&gt;
* In &#039;&#039;&#039;Atom &amp;gt; Preferences &amp;gt; Install&#039;&#039;&#039; install &#039;&#039;&#039;linter-phpcs&#039;&#039;&#039; and all its requirements.&lt;br /&gt;
* In &#039;&#039;&#039;Atom &amp;gt; Preferences &amp;gt; Packages &amp;gt; linter-phpcs &amp;gt; Settings&#039;&#039;&#039; adjust&lt;br /&gt;
** &#039;&#039;&#039;Executable Path&#039;&#039;&#039; to the path of your phpcs&lt;br /&gt;
** &#039;&#039;&#039;Code Standard Or Config File&#039;&#039;&#039;: Joomla&lt;br /&gt;
** &#039;&#039;&#039;Tab Width&#039;&#039;&#039;: 4&lt;br /&gt;
&lt;br /&gt;
=== Ссылки ===&lt;br /&gt;
* https://github.com/joomla/coding-standards - Joomla! Coding Standards&lt;br /&gt;
* http://www.phpsrc.org/ PTI - инструменты интеграции PHP для Eclipse&lt;br /&gt;
* http://sourceforge.net/projects/phpmdnb/ Плагин Netbeans&lt;br /&gt;
* http://hakre.wordpress.com/2010/03/06/php-code-sniffer-eclipse-and-wordpress/ - Отличный материал. Просто поменяйте &amp;quot;Wordpress&amp;quot; на &amp;quot;Joomla!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[Category:Bug Squad{{#translation:}}]]&lt;br /&gt;
[[Category:IDE (Integrated development environment){{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Joomla_CodeSniffer/77/ru&amp;diff=645122</id>
		<title>Translations:Joomla CodeSniffer/77/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Joomla_CodeSniffer/77/ru&amp;diff=645122"/>
		<updated>2020-01-03T16:09:24Z</updated>

		<summary type="html">&lt;p&gt;B2z: Created page with &amp;quot;Code Sniffer также может быть легко интегрирован как внешний инструмент. PhpStorm отобразит вывод в конс...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Code Sniffer также может быть легко интегрирован как внешний инструмент. PhpStorm отобразит вывод в консоли, в том числе ссылки с возможностью щелчка, содержащие номера строк и столбцов с файлами, которые содержат ошибки.&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Joomla_CodeSniffer/ru&amp;diff=645121</id>
		<title>Joomla CodeSniffer/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Joomla_CodeSniffer/ru&amp;diff=645121"/>
		<updated>2020-01-03T16:08:29Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Анализатор кода для Joomla ==&lt;br /&gt;
Это кастомный стандарт оформления кода для PHP CodeSniffer, который пытается привести всё к единому стандарту оформления кода в Joomla. В этом материале описывается, как настроить автоматическую проверку стиля оформления кода.&lt;br /&gt;
# Установка PHP CodeSniffer (phpcs).&lt;br /&gt;
# Клонирование Joomla Code Style (для использования с phpcs).&lt;br /&gt;
# Настройки вашей IDE для работы с PHP CodeSniffer и Joomla Code Style.&lt;br /&gt;
&lt;br /&gt;
[[File:CodeSnifferInAction.jpg|center|thumb|300px|PHP Code Sniffer in action]]&lt;br /&gt;
&lt;br /&gt;
==Зачем?==&lt;br /&gt;
*Понятная и устойчивая практика написания кода заставляет выглядеть файлы более профессионально. Конфликтующие стили в том же проекте (или ещё хуже, в том же файле) не только выглядят небрежно, но и поощряют ещё большую небрежность.&lt;br /&gt;
*Когда весь код соответствует единому стандарту, плохой код намного легче обнаружить.&lt;br /&gt;
*Для того, кто только начал разбираться с файлом в проекте, намного проще найти и исправить ошибки или расширить функциональность.&lt;br /&gt;
*Если нет постоянно поддерживаемого стандарта, разработчики будут форматировать текст как им удобнее. Это приводит к широкому диапазону изменений в репозитории с кодом. Если проблема обнаружится на последней стадии, то значительная часть изменений может быть утеряна при выборке во время diff.&lt;br /&gt;
&lt;br /&gt;
==1. Установка PHP Code Sniffer (phpcs)==&lt;br /&gt;
===Composer===&lt;br /&gt;
PHP Code Sniffer доступен через Composer. Он может быть установлен в рамках всей системы следующей командой:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;composer global require squizlabs/php_codesniffer &amp;quot;~2.8&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
На &#039;&#039;&#039;Linux&#039;&#039;&#039; PHP Code Sniffer (phpcs) будет установлен в папку вашего пользователя: &lt;br /&gt;
* Символическая ссылка: &amp;lt;tt&amp;gt;~/.composer/vendor/bin/phpcs&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Файл: &amp;lt;tt&amp;gt;~/.composer/vendor/squizlabs/php_codesniffer/scripts/phpcs&amp;lt;/tt&amp;gt;&lt;br /&gt;
Для создания символической ссылки, используйте командную строку: &amp;lt;code&amp;gt;&lt;br /&gt;
$ sudo ln -s ~/.config/composer/vendor/squizlabs/php_codesniffer/scripts /usr/bin/phpcs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
или (например OpenSuse)&lt;br /&gt;
* Символическая ссылка: &amp;lt;tt&amp;gt;~/.config/composer/vendor/bin/phpcs&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Файл: &amp;lt;tt&amp;gt;~/.config/composer/vendor/squizlabs/php_codesniffer/scripts/phpcs&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На &#039;&#039;&#039;Windows&#039;&#039;&#039; PHP Code Sniffer (phpcs) будет установлен в папку вашего пользователя:&lt;br /&gt;
* Символическая ссылка: &amp;lt;tt&amp;gt;c:\Users\Username\AppData\Roaming\Composer\vendor\bin\phpcs&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Файл: &amp;lt;tt&amp;gt;c:\Users\Username\AppData\Roaming\Composer\vendor\squizlabs\php_codesniffer\scripts\phpcs&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Добавление директории bin composer к переменной $PATH ===&lt;br /&gt;
Для того, чтобы запускать PHP Code sniffer откуда угодно в командной строке Linux или Mac, необходимо добавить &amp;lt;tt&amp;gt;.composer/vendor/bin&amp;lt;/tt&amp;gt; к вашей переменной $PATH.&lt;br /&gt;
Для того, чтобы зафиксировать это на постоянной основе, отредактируйте стартовый файл оболочки, например .profile или .bash_profile, в зависимости от того, какую оболочку вы используете (echo $SHELL покажет вам, какую вы используете).&lt;br /&gt;
&lt;br /&gt;
Добавьте следующую строку в файл:&lt;br /&gt;
&amp;lt;tt&amp;gt;export PATH=$PATH:~/.composer/vendor/bin&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В качестве альтернативы вы можете создать симовлическую ссылку в папке bin:&lt;br /&gt;
&amp;lt;tt&amp;gt;ln -s ~/.composer/vendor/bin/phpcs /usr/local/bin/phpcs&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==2. Установка Joomla Coding Standards==&lt;br /&gt;
Для того, чтобы PHP Code Sniffer (phpcs) начал &amp;quot;нюхать&amp;quot; (проверять) ваши проекты Joomla на правильный стиль оформления кода, вам необходимо установить Joomla Coding Standards (стандарты оформления кода в Joomla).&lt;br /&gt;
&lt;br /&gt;
Используя composer, мы можем запустить:&lt;br /&gt;
&amp;lt;tt&amp;gt;composer global require joomla/coding-standards &amp;quot;~2.0@alpha&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Обратите внимание на &amp;lt;tt&amp;gt;@alpha&amp;lt;/tt&amp;gt;. Всё потому, что стандарт всё ещё в стадии альфа, и мы должны позволить установку кода, со статусом alpha. Если мы не укажем @alpha, то стандарты не будут установлены и выкинут ошибку.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Your requirements could not be resolved to an installable set of packages.&lt;br /&gt;
&lt;br /&gt;
  Problem 1&lt;br /&gt;
    - The requested package joomla/coding-standards ~2.0 is satisfiable by joomla/coding-standards[2.0.0-alpha, 2.0.0-alpha2, 2.x-dev] but these conflict with your requirements or minimum-stability.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как только установка завершится, стандарт оформления кода будет установлен в глобальную папку composer. Расположение этой папки зависит от вашей операционной системы. Вот некоторые популярные места расположения:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mac / Linux&#039;&#039;&#039;&lt;br /&gt;
 ~/.composer/vendor/joomla/coding-standards/&lt;br /&gt;
&lt;br /&gt;
 ~/.config/composer/vendor/joomla/coding-standards/&lt;br /&gt;
&#039;&#039;&#039;Windows&#039;&#039;&#039;&lt;br /&gt;
 c:\Users\Username\AppData\Roaming\Composer\vendor\joomla\coding-standards\&lt;br /&gt;
Так это выглядит при использовании Composer в Windows.&lt;br /&gt;
&lt;br /&gt;
Если вы не можете найти ни одну из выше указанных папок, то учите, что папка, которую вы ищите, заканчивается на &#039;&#039;&#039;\joomla\coding-standards\&#039;&#039;&#039;&lt;br /&gt;
И наконец, мы должны дать понятьCode Sniffer, что стандарты оформления кода Joomla существуют.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Установка Joomla Coding Standards&#039;&#039;&#039;&lt;br /&gt;
# Проверьте, пути установлены или нет, запустив команду &amp;lt;tt&amp;gt;phpcs --config-show&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Вы можете получить ответ, который выглядит вот так: &amp;lt;tt&amp;gt;installed_paths: /path/to/installation&amp;lt;/tt&amp;gt;&lt;br /&gt;
# На шаге 2, если вы видите &#039;&#039;&#039;installed_paths&#039;&#039;&#039;, скопируйте их&lt;br /&gt;
# Установите путь Joomla Coding Standards в phpcs вызовом команды &amp;lt;tt&amp;gt;phpcs --config-set installed_paths /Users/user/.composer/vendor/joomla/coding-standards&amp;lt;/tt&amp;gt;. Если вы скопировали пути на шаге 2, включите их здесь, разделяя запятой. Команда будет выглядеть как &amp;lt;tt&amp;gt;phpcs --config-set installed_paths [/to/path1],[/to/path2],[/Users/user/.composer/vendor/joomla/coding-standards]&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Убедитесь, что путь установлен верно, запустив команду &amp;lt;tt&amp;gt;phpcs --config-show&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Убедитесь, что phpcs видит стандарт оформления кода Joomla, запустив команду &amp;lt;tt&amp;gt;phpcs -i&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Вывод должен выглядеть вот так: &amp;lt;tt&amp;gt;The installed coding standards are MySource, PEAR, PHPCS, PSR1, PSR2, Squiz, Zend and Joomla&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Использование ==&lt;br /&gt;
Вы вызываете кастомный стандарт через&lt;br /&gt;
&amp;lt;tt&amp;gt;phpcs --standard=Joomla file/to/sniff&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для тестирования файлов platform со стандартом разработки platform, используйте&lt;br /&gt;
&amp;lt;tt&amp;gt;phpcs --standard=build/phpcs/Joomla path/to/file/or/folder&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дополнительная документация по использованию phpcs доступна здесь: [http://pear.php.net/package/PHP_CodeSniffer/docs]&lt;br /&gt;
&lt;br /&gt;
==3. Интеграция с IDE ==&lt;br /&gt;
Все любять консоль. Это, без сомнения, самый эффективный путь делать то, что захочется. Но иногда и гуру Linux нуждаются в небольшом комфорте.&lt;br /&gt;
&lt;br /&gt;
К счастью, для PhpStorm, Eclipse и Netbeans существует плагин, который интегрирует CodeSniffer в вашу любимую IDE, поэтому нарушения стандартов оформления кода показываются как &amp;quot;обычные&amp;quot; ошибки.&lt;br /&gt;
&lt;br /&gt;
=== PhpStorm ===&lt;br /&gt;
Code Sniffer поддерживается PhpStorm из коробки. Зайдите в Settings, и в Editor {{rarr}} Inspections вы увидите список установленных снифферов.&lt;br /&gt;
==== Установите путь до Code Sniffer ====&lt;br /&gt;
# Откройте Settings (CTRL-ALT-S / CMD-,)&lt;br /&gt;
# Перейдите в Languages &amp;amp; Frameworks&lt;br /&gt;
# Щёлкните на PHP&lt;br /&gt;
# Щёлкните на Quality Tools&lt;br /&gt;
# Щёлкните на область PHP CS Fixer&lt;br /&gt;
# Настройка по умолчанию установлена в Local&lt;br /&gt;
# Щёлкните на 3 точки за ней для открытия настроечного экрана&lt;br /&gt;
# Первая опция и есть путь PHP Code Sniffer (phpcs)&lt;br /&gt;
# Щёлкните на 3 точки за путём для выбора расположения файла phpcs. Смотрите выше, где может быть установлен phpcs.&lt;br /&gt;
# Щёлкните на Validate, чтобы убедиться в том, что путь верен и phpcs работает&lt;br /&gt;
# Щёлкните OK&lt;br /&gt;
&lt;br /&gt;
===== Активизация Joomla Code Style =====&lt;br /&gt;
# Откройте Settings (CTRL-ALT-S / CMD-,)&lt;br /&gt;
# Перейдите в Editor&lt;br /&gt;
# Щёлкните на Inspections&lt;br /&gt;
# В списке перейдите к PHP&lt;br /&gt;
# Щёлкните на PHP Code Sniffer Validation&lt;br /&gt;
# Щёлкните на чекбокс за ним, для активации&lt;br /&gt;
# Щёлкните на кнопку Reload (2 стрелки) для принудительной перезагрузки правил с диска&lt;br /&gt;
# Теперь в списке должна стать доступной Joomla. Смотрите на картинке:{{-}}[[File:PhpStorm8CodeSniffer.png|PHPStorm CodeSniffer|500px]]&lt;br /&gt;
# Щёлкните OK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== PHP PSR-0, PSR-1 и PSR-2 ====&lt;br /&gt;
* https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md&lt;br /&gt;
* https://github.com/pmjones/fig-standards/blob/psr-1-style-guide/proposed/PSR-1-basic.md&lt;br /&gt;
* https://github.com/pmjones/fig-standards/blob/psr-1-style-guide/proposed/PSR-2-advanced.md&lt;br /&gt;
&lt;br /&gt;
===== Использование PHP PSR-1 и PSR-2 Sniff =====&lt;br /&gt;
CodeSniffer также может быть использован и для PSR-x Coding Standard. В этом случае вы просто выбираете другой стандарт, а не Joomla.&lt;br /&gt;
===== Использование стиля офрмления кода Joomla =====&lt;br /&gt;
Было бы неплохо проверять, что стандарты действительно учитываются. А ещё лучше, если бы PhpStorm помогал вам с форматированием по мере того, как вы пишете код.&lt;br /&gt;
Для использования стиля оформления кода в PhpStorm&lt;br /&gt;
# Откройте Settings (CTRL-ALT-S / CMD-,)&lt;br /&gt;
# Пройдите в Editor&lt;br /&gt;
# Щёлкните на Code Style&lt;br /&gt;
# Выберите Joomla в списке Scheme&lt;br /&gt;
&lt;br /&gt;
==== PhpStorm / Альтернативный метод ====&lt;br /&gt;
&#039;&#039;&#039;Примечание&#039;&#039;&#039;: Метод &#039;&#039;&#039;просрочен&#039;&#039;&#039;, но может быть полезен, если вы ищете возможности другой интегрции. Он также демонстрирует использование внешних инструментов в PhpStorm - так что &#039;&#039;не стоит его удалять&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The Code Sniffer can also be integrated easily as an external tool. PhpStorm will display the output in the console, including click-able links containing line and column numbers to the files that contain errors.&lt;br /&gt;
&lt;br /&gt;
* Щёлкните на &amp;quot;Settings&amp;quot; и найдите &amp;quot;External tools&amp;quot;&lt;br /&gt;
* Щёлкните &amp;quot;Add...&amp;quot;&lt;br /&gt;
* Выберите &amp;quot;Name&amp;quot;, &amp;quot;Group&amp;quot; and &amp;quot;Description&amp;quot;.&lt;br /&gt;
* Щёлкните &amp;quot;Output Filters&amp;quot;&lt;br /&gt;
** Щёлкните &amp;quot;Add...&amp;quot;, выберите название и введите в &amp;quot;Regular expression to match output&amp;quot; значение: &amp;lt;tt&amp;gt;$FILE_PATH$:$LINE$:$COLUMN$&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;quot;Program&amp;quot;: найдите в вашей системе исполняемый файл phpcs. Вы должны выбрать путь до &#039;&#039;phpcs.bat&#039;&#039; из установленного пакета PHP_CodeSniffer PEAR&lt;br /&gt;
** Для Unix систем, путём будет что-то вроде /usr/bin/phpcs&lt;br /&gt;
** В XAMPP (windows), вы можете найти файл в корне папки PHP (например, C:\xampp\php\phpcs.bat)&lt;br /&gt;
* &amp;quot;Parameters&amp;quot;:&lt;br /&gt;
** &amp;lt;tt&amp;gt;--standard=&amp;lt;path/to/joomla-platform&amp;gt;/build/phpcs/Joomla&amp;lt;/tt&amp;gt; Путь до стандартов оформления кода Joomla.&lt;br /&gt;
** &amp;lt;tt&amp;gt;--report=emacs&amp;lt;/tt&amp;gt; Это сгенерирует простой список, содержащий ссылки на файлы ошибок&lt;br /&gt;
** Опционально вы можете указать &amp;lt;tt&amp;gt;-p&amp;lt;/tt&amp;gt; для &amp;quot;progress&amp;quot; или &amp;lt;tt&amp;gt;-n&amp;lt;/tt&amp;gt; для &amp;quot;errors only&amp;quot;.&lt;br /&gt;
** Последним параметром должен быть &amp;lt;tt&amp;gt;$FilePath$&amp;lt;/tt&amp;gt;, который должен указывать на папку или файл, которые вы хотите проверить.&lt;br /&gt;
&lt;br /&gt;
Типичная строка &amp;quot;Parameters&amp;quot; на Linux системах может выглядеть вот так:&lt;br /&gt;
&amp;lt;pre&amp;gt;-np --standard=/home/elkuku/libs/joomla/build/phpcs/Joomla --report=emacs $FilePath$&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь вы можете сделать правый щелчок на любом файле или папке и выбрать сниффер из контекстного меню. Или можете добавить кнопку на панель инструментов с красивым лого Joomla. [[File:icon-16-joomla.png]].&lt;br /&gt;
&lt;br /&gt;
=== Netbeans ===&lt;br /&gt;
У Netbeans функциональность сниффера встроена в ядро системы.&lt;br /&gt;
&lt;br /&gt;
# Запустите Netbeans IDE&lt;br /&gt;
# Откройте Tools =&amp;gt; Options =&amp;gt; PHP =&amp;gt; Code Analysis =&amp;gt; Code Sniffer&lt;br /&gt;
# Вы должны установить путь до &#039;&#039;phpcs.bat&#039;&#039; из установленного пакета PHP_CodeSniffer PEAR&lt;br /&gt;
#* Для Unix систем, путём будет что-то вроде /usr/bin/phpcs&lt;br /&gt;
#* В XAMPP (windows), вы можете найти файл в корне папки PHP (например, C:\xampp\php\phpcs.bat)&lt;br /&gt;
# Как &amp;quot;Default Standard,&amp;quot; выберите &amp;quot;Joomla&amp;quot;&lt;br /&gt;
# Теперь можете щёлкнуть на &#039;&#039;OK&#039;&#039;&lt;br /&gt;
# Откройте из верхнего меню Source =&amp;gt; Inspect...&lt;br /&gt;
# Наслаждайтесь&lt;br /&gt;
&lt;br /&gt;
=== Eclipse ===&lt;br /&gt;
[[Image:eclipse_pti.png|left|thumb|200px|1) Eclipse PTI]]&lt;br /&gt;
{{-}}&lt;br /&gt;
Установка следует обычному шаблону:&lt;br /&gt;
# &amp;lt;tt&amp;gt;Help =&amp;gt; Install New Software...&amp;lt;/tt&amp;gt;&lt;br /&gt;
# &amp;lt;tt&amp;gt;Work with:&amp;lt;/tt&amp;gt; Заполните одним из адресов URLs, которые можно найти здесь: http://www.phpsrc.org/eclipse/pti/&lt;br /&gt;
# Выберите нужный инструмент&lt;br /&gt;
# Перезапустите Eclipse.&lt;br /&gt;
&lt;br /&gt;
[[Image:eclipse_pti_settings.png|right|thumb|150px|2) Настройки Eclipse PTI]]&lt;br /&gt;
Теперь вы можете выполнять проверку кода согласно таким стандартам как PEAR, Zend и т.п..&lt;br /&gt;
&lt;br /&gt;
Для выполения проверки собственных стандартов, укажите расположение и активизируйте (смотрите скриншот 2)&lt;br /&gt;
# &amp;lt;tt&amp;gt;Window =&amp;gt; Preferences&amp;lt;/tt&amp;gt;&lt;br /&gt;
# &amp;lt;tt&amp;gt;PHP Tools =&amp;gt; PHP CodeSniffer&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Удачного сниффинга.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Geany ===&lt;br /&gt;
* Откройте PHP файл. (Иначе меню build недоступно.) Смотрите [http://static.xscreenshot.com/2016/07/13/08/screen_6bc0692cf995702a1e379b39643d0c2d Screenshot]&lt;br /&gt;
* В верхнем меню выберите Build-&amp;gt;Set Build Commands.&lt;br /&gt;
* Выберите второе поле и назовите его по своему желанию. Введите этот код в Command: &amp;lt;code&amp;gt;phpcs --standard=Joomla &amp;quot;%f&amp;quot; | sed -e &#039;s/^/%f |/&#039; | egrep &#039;WARNING|ERROR&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Введите этот код в поле Error Regular Expression: &amp;lt;code&amp;gt;(.+) [|]\s+([0-9]+)&amp;lt;/code&amp;gt; See this  [http://view.xscreenshot.com/ef00820cf7c017ce659c8e9f0b02d3ae Screenshot]&lt;br /&gt;
* Выберите OK.&lt;br /&gt;
* Если окно Message не открыто, отобразите его, выбрав в верхнем меню View.&lt;br /&gt;
* При просмотре любого PHP файла, нажмите F9 для просмотра найденных ошибок. [http://view.xscreenshot.com/8704b9fd1bda3f841364a0ffa28a54ae Screenshot]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Atom ===&lt;br /&gt;
* Install phpcs and the Joomla standards as described above.&lt;br /&gt;
* In &#039;&#039;&#039;Atom &amp;gt; Preferences &amp;gt; Install&#039;&#039;&#039; install &#039;&#039;&#039;linter-phpcs&#039;&#039;&#039; and all its requirements.&lt;br /&gt;
* In &#039;&#039;&#039;Atom &amp;gt; Preferences &amp;gt; Packages &amp;gt; linter-phpcs &amp;gt; Settings&#039;&#039;&#039; adjust&lt;br /&gt;
** &#039;&#039;&#039;Executable Path&#039;&#039;&#039; to the path of your phpcs&lt;br /&gt;
** &#039;&#039;&#039;Code Standard Or Config File&#039;&#039;&#039;: Joomla&lt;br /&gt;
** &#039;&#039;&#039;Tab Width&#039;&#039;&#039;: 4&lt;br /&gt;
&lt;br /&gt;
=== Ссылки ===&lt;br /&gt;
* https://github.com/joomla/coding-standards - Joomla! Coding Standards&lt;br /&gt;
* http://www.phpsrc.org/ PTI - инструменты интеграции PHP для Eclipse&lt;br /&gt;
* http://sourceforge.net/projects/phpmdnb/ Плагин Netbeans&lt;br /&gt;
* http://hakre.wordpress.com/2010/03/06/php-code-sniffer-eclipse-and-wordpress/ - Отличный материал. Просто поменяйте &amp;quot;Wordpress&amp;quot; на &amp;quot;Joomla!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[Category:Bug Squad{{#translation:}}]]&lt;br /&gt;
[[Category:IDE (Integrated development environment){{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Joomla_CodeSniffer/45/ru&amp;diff=645120</id>
		<title>Translations:Joomla CodeSniffer/45/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Joomla_CodeSniffer/45/ru&amp;diff=645120"/>
		<updated>2020-01-03T16:08:28Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;# Откройте Settings (CTRL-ALT-S / CMD-,)&lt;br /&gt;
# Перейдите в Languages &amp;amp; Frameworks&lt;br /&gt;
# Щёлкните на PHP&lt;br /&gt;
# Щёлкните на Quality Tools&lt;br /&gt;
# Щёлкните на область PHP CS Fixer&lt;br /&gt;
# Настройка по умолчанию установлена в Local&lt;br /&gt;
# Щёлкните на 3 точки за ней для открытия настроечного экрана&lt;br /&gt;
# Первая опция и есть путь PHP Code Sniffer (phpcs)&lt;br /&gt;
# Щёлкните на 3 точки за путём для выбора расположения файла phpcs. Смотрите выше, где может быть установлен phpcs.&lt;br /&gt;
# Щёлкните на Validate, чтобы убедиться в том, что путь верен и phpcs работает&lt;br /&gt;
# Щёлкните OK&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587405</id>
		<title>Using JLog/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587405"/>
		<updated>2019-01-16T08:33:02Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Обзор ==&lt;br /&gt;
Логирование в Joomla дает вам возможность логировать сообщения в файлы и на экран (в консоли отладки Joomla внизу веб-страницы), а основным классом Joomla, который для этого используется, является JLog. &lt;br /&gt;
&lt;br /&gt;
Логирование, в некоторой степени, может контролироваться динамически через общие настройки Joomla и путем настройки плагина «Система - Отладка» (поставляется с Joomla). В целом эти возможности позволяют вам:&lt;br /&gt;
* включать или отключать систему отладки - чтобы вы не потребляли ресурсы без необходимости, но при этом у вас оставалась информация для того, чтобы помочь в устранении неполадок, когда есть проблемы. Например, на живом сайте, на котором установлено ваше расширение.&lt;br /&gt;
* направлять сообщения логов в определенный файл логов вашего собственного расширения&lt;br /&gt;
* просматривать сообщения логов в консоли отладки - вы можете выбрать группу пользователей, для которых должны отображаться сообщения логов, чтобы на живом сайте разработчики могли видеть сообщения, в то время как другие пользователи не затрагивались.&lt;br /&gt;
* фильтровать сообщения консоли отладки по приоритету (например, INFO, DEBUG, WARNING и т. д.) и по категориям (вы можете сами определять свои категории).&lt;br /&gt;
Кроме того, сообщения логов могут быть переведены на разные языки. &lt;br /&gt;
&lt;br /&gt;
Основные параметры конфигурации, относящиеся к ведению логов, показаны ниже.&lt;br /&gt;
&lt;br /&gt;
Включение отладки и отображение консоли отладки Joomla контролируется через общие настройки.&lt;br /&gt;
[[File:Global conf debug-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Логирование в общий файл логов контролируется с помощью вкладки Журнал (логи) конфигурации плагина Joomla «Система - Отладка» (в меню администратора нажмите «Расширения / Плагины», найдите плагин «Система - Отладка» и нажмите на него, чтобы изменить его параметры). &lt;br /&gt;
[[File:Debug logging settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Параметры на вкладке &amp;quot;Плагин&amp;quot; контролируют отображение в консоли отладки Joomla.&lt;br /&gt;
[[File:Debug plugin settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Базовое логирование в файл ==&lt;br /&gt;
&lt;br /&gt;
Чтобы отправить сообщение в лог, используйте функцию &amp;lt;tt&amp;gt;JLog::add()&amp;lt;/tt&amp;gt;. Например:&lt;br /&gt;
&lt;br /&gt;
    JLog::add(&#039;my error message&#039;, JLog::ERROR, &#039;my-error-category&#039;);&lt;br /&gt;
&lt;br /&gt;
Параметры&lt;br /&gt;
# Строка сообщения. Вы можете использовать перевод, например, &amp;lt;tt&amp;gt;JText::_(&#039;MY_EXTENSION_ERR_MSG&#039;)&amp;lt;/tt&amp;gt;. Вы также можете отображать значения переменных при условии, что вы конвертируете их в строковый формат (например, с помощью &amp;lt;tt&amp;gt;__toString ()&amp;lt;/tt&amp;gt;, если тип переменной это поддерживает). &lt;br /&gt;
# Приоритет, который может быть одним из: JLog::EMERGENCY, JLog::ALERT, JLog::CRITICAL, JLog::ERROR, JLog::WARNING, JLog::NOTICE, JLog::INFO, JLog::DEBUG (основано на уровнях серьёзности syslog / RFC 5424 – подробнее в [https://ru.wikipedia.org/wiki/Syslog материале Wikipedia о syslog]).&lt;br /&gt;
# Категория, которая является просто текстовой строкой. Вы можете определить любые категории, которые вам нравятся. Лучше всего определять их, чтобы избежать возможных конфликтов с другими расширениями. &lt;br /&gt;
&lt;br /&gt;
Если вы включите диагностические сообщения отладки в ваше расширение, то это может быть очень полезно при устранении неполадок. В этом случае добавьте к своему лог сообщению проверку на JDEBUG:&lt;br /&gt;
&lt;br /&gt;
    if (JDEBUG) &lt;br /&gt;
    {&lt;br /&gt;
        JLog::add(&#039;my debug message&#039;, JLog::DEBUG, &#039;my-debug-category&#039;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
== Логирование в определённый файл логов == &lt;br /&gt;
Вы можете использовать &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;, чтобы настроить ведение логов в дополнительный файл логов, отфильтровывая сообщения логов по приоритету (уровень серьезности) и / или категории. Параметры &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
# массив с деталями конфигурации - включая имя файла логов&lt;br /&gt;
# уровни серьезности, которые будут логироваться в этом файле&lt;br /&gt;
# массив категорий, которые будут логироваться в этом файле (или если для параметра 4 установлено значение &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;, тогда этот массив определяет категории, которые НЕ должны регистрироваться в файле)&lt;br /&gt;
# (часто пропускается) логическое значение, указывающее, является ли параметр 3 списком включения (по умолчанию P4 = &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;) или списком исключения (P4 = &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Например, если вы разработали расширение &#039;com_helloworld&#039;, вы можете использовать следующее:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.log.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets messages of all log levels to be sent to the file&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
            // The log category/categories which should be recorded in this file&lt;br /&gt;
            // In this case, it&#039;s just the one category from our extension, still&lt;br /&gt;
            // we need to put it inside an array&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Затем, когда вы логируете сообщение, укажите категорию &#039;com_helloworld&#039;, как в примере ниже&lt;br /&gt;
&lt;br /&gt;
    JLog::add(JText::_(&#039;COM_HELLOWORLD_ERROR_MESSAGE_123&#039;), JLog::ERROR, &#039;com_helloworld&#039;);&lt;br /&gt;
&lt;br /&gt;
Это приведет к тому, что ваше сообщение будет записано в com_helloworld.log.php. Если в настройках плагина «Система - Отладка» для параметра «Протоколировать все» задано значение «Да», то это сообщение появится и в общем файле журнала everything.php.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Вы можете объединить это с [[S:MyLanguage/Display error messages and notices|Display error messages and notices]] для отображения видимых уведомлений об ошибках для пользователей.&lt;br /&gt;
&lt;br /&gt;
Вы также можете добавить дополнительный логгер для сбора только критических и аварийных уведомлений:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets critical and emergency log level messages to be sent to the file&lt;br /&gt;
        JLog::CRITICAL + JLog::EMERGENCY,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Вы также можете исключить определенный уровень приоритета от включения в файл логов. Например, чтобы логировать все сообщения кроме DEBUG:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.all_but_debug.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Уровни приоритета &amp;lt;tt&amp;gt;JLog&amp;lt;/tt&amp;gt; реализованы в виде отдельных битов целого числа, поэтому вы можете использовать &#039;&#039;&#039;побитовые&#039;&#039;&#039; операции  (побитовое AND, &amp;amp;; и побитовое NOT, ~) для вычисления подходящих уровней логов. &amp;lt;tt&amp;gt;JLog::All&amp;lt;/tt&amp;gt; является постоянным целым числом, в котором установлены все соответствующие биты, поэтому включены все уровни приоритета Joomla. &lt;br /&gt;
&lt;br /&gt;
== Форматирование файла логов ==&lt;br /&gt;
&lt;br /&gt;
Первый параметр &amp;lt;tt&amp;gt;addLogger&amp;lt;/tt&amp;gt; может иметь несколько необязательных дополнительных настроек в дополнение к параметру &amp;lt;tt&amp;gt;text_file&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, есть параметр &amp;lt;tt&amp;gt;text_entry_format&amp;lt;/tt&amp;gt;, указывающий формат каждой строки в вашем лог файле.&lt;br /&gt;
&lt;br /&gt;
Формат по умолчанию:&lt;br /&gt;
&lt;br /&gt;
    &#039;{DATETIME} {PRIORITY}      {CATEGORY}      {MESSAGE}&#039;&lt;br /&gt;
&lt;br /&gt;
Вот пример другого формата, который показывает, как пропустить категорию:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;,&lt;br /&gt;
             // Sets the format of each line&lt;br /&gt;
             &#039;text_entry_format&#039; =&amp;gt; &#039;{DATETIME} {PRIORITY} {MESSAGE}&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Помимо заполнителей (placeholders), показанных выше в строке по умолчанию, доступны следующие значения:&lt;br /&gt;
&lt;br /&gt;
    {CLIENTIP}      (this is the IP address of the client)&lt;br /&gt;
    {TIME}&lt;br /&gt;
    {DATE}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Существует дополнительный необязательный логический параметр &amp;lt;tt&amp;gt;text_file_no_php&amp;lt;/tt&amp;gt;, который указывает, следует ли добавлять в файл логов обычный префикс:&lt;br /&gt;
&lt;br /&gt;
    #&lt;br /&gt;
    #&amp;lt;?php die(&#039;Forbidden.&#039;);?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Обычно вам не следует устанавливать для этого параметра значение &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;. Файлы логов не должны быть доступны для чтения извне, поскольку они могут предоставить злоумышленникам ценную информацию о вашей системе.&lt;br /&gt;
Изменяйте этот параметр, только если вы знаете, что делаете!&lt;br /&gt;
&lt;br /&gt;
Кроме того, если вы хотите сохранить файл логов где-то еще, а не по пути, указанному в общих настройках Joomla, вы можете изменить параметр &amp;lt;tt&amp;gt;text_file_path&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Логирование в другие места ==&lt;br /&gt;
&lt;br /&gt;
Помимо логирования в файлы, вы также можете логировать в другие места, такие как&lt;br /&gt;
* область сообщений Joomla (сообщение отображается, если вы вызываете &amp;lt;tt&amp;gt;JFactory::getApplication()-&amp;gt;enqueueMessage()&amp;lt;/tt&amp;gt;)&lt;br /&gt;
* таблица базы данных&lt;br /&gt;
* просто echo&lt;br /&gt;
Из них, пожалуй, наиболее полезным является логирование в панель сообщений, которое можно настроить следующим образом:&lt;br /&gt;
     JLog::addLogger(array(&#039;logger&#039; =&amp;gt; &#039;messagequeue&#039;), JLog::ALL, array(&#039;msg-error-cat&#039;));&lt;br /&gt;
Затем, когда вы делаете:&lt;br /&gt;
     JLog::add(&#039;сообщение об ошибке для отображения&#039;, JLog::ERROR, &#039;msg-error-cat&#039;);&lt;br /&gt;
вы получаете сообщение, скопированное на панель сообщений.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Обратите внимание, что код ядра Joomla настраивает запись в очередь сообщений для категории &#039;jerror&#039;, поэтому, если вы используете эту категорию в своих сообщениях журнала, вы получите сообщение, отображаемое на панели сообщений.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
     JLog::add (&#039;ошибка скопирована на панель сообщений&#039;, JLog::ERROR, &#039;jerror&#039;);&lt;br /&gt;
приведет к тому, что сообщение будет отображаться в области сообщений Joomla, даже если вы явно не настроили такое поведение для своего логгера.&lt;br /&gt;
&lt;br /&gt;
== Исключения ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;JLog::add()&amp;lt;/code&amp;gt; кидает исключение, если не может записать в файл логов. Чтобы избежать этого, вам придется либо обернуть вызов в другую функцию, либо реализовать свой собственный класс логгера, а затем включить его:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Use mycustomlogger&lt;br /&gt;
             &#039;logger&#039; =&amp;gt; &#039;mycustomlogger&#039;,&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.errors.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
== Что ещё почитать == &lt;br /&gt;
Логирование в Joomla должно использоваться в тандеме с исключениями PHP, а не в качестве замены. Подробнее в [[S:MyLanguage/Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1|Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]].&lt;br /&gt;
&lt;br /&gt;
Другое руководство (немного устаревшее, но все же полезное) находится по адресу [http://eddify.me/posts/logging-in-joomla-with-jlog.html Logging in Joomla with JLog].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 1.7{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 2.5{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.0{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.x{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/20/ru&amp;diff=587404</id>
		<title>Translations:Using JLog/20/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/20/ru&amp;diff=587404"/>
		<updated>2019-01-16T08:33:02Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Помимо заполнителей (placeholders), показанных выше в строке по умолчанию, доступны следующие значения:&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587403</id>
		<title>Using JLog/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587403"/>
		<updated>2019-01-16T08:32:53Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Обзор ==&lt;br /&gt;
Логирование в Joomla дает вам возможность логировать сообщения в файлы и на экран (в консоли отладки Joomla внизу веб-страницы), а основным классом Joomla, который для этого используется, является JLog. &lt;br /&gt;
&lt;br /&gt;
Логирование, в некоторой степени, может контролироваться динамически через общие настройки Joomla и путем настройки плагина «Система - Отладка» (поставляется с Joomla). В целом эти возможности позволяют вам:&lt;br /&gt;
* включать или отключать систему отладки - чтобы вы не потребляли ресурсы без необходимости, но при этом у вас оставалась информация для того, чтобы помочь в устранении неполадок, когда есть проблемы. Например, на живом сайте, на котором установлено ваше расширение.&lt;br /&gt;
* направлять сообщения логов в определенный файл логов вашего собственного расширения&lt;br /&gt;
* просматривать сообщения логов в консоли отладки - вы можете выбрать группу пользователей, для которых должны отображаться сообщения логов, чтобы на живом сайте разработчики могли видеть сообщения, в то время как другие пользователи не затрагивались.&lt;br /&gt;
* фильтровать сообщения консоли отладки по приоритету (например, INFO, DEBUG, WARNING и т. д.) и по категориям (вы можете сами определять свои категории).&lt;br /&gt;
Кроме того, сообщения логов могут быть переведены на разные языки. &lt;br /&gt;
&lt;br /&gt;
Основные параметры конфигурации, относящиеся к ведению логов, показаны ниже.&lt;br /&gt;
&lt;br /&gt;
Включение отладки и отображение консоли отладки Joomla контролируется через общие настройки.&lt;br /&gt;
[[File:Global conf debug-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Логирование в общий файл логов контролируется с помощью вкладки Журнал (логи) конфигурации плагина Joomla «Система - Отладка» (в меню администратора нажмите «Расширения / Плагины», найдите плагин «Система - Отладка» и нажмите на него, чтобы изменить его параметры). &lt;br /&gt;
[[File:Debug logging settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Параметры на вкладке &amp;quot;Плагин&amp;quot; контролируют отображение в консоли отладки Joomla.&lt;br /&gt;
[[File:Debug plugin settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Базовое логирование в файл ==&lt;br /&gt;
&lt;br /&gt;
Чтобы отправить сообщение в лог, используйте функцию &amp;lt;tt&amp;gt;JLog::add()&amp;lt;/tt&amp;gt;. Например:&lt;br /&gt;
&lt;br /&gt;
    JLog::add(&#039;my error message&#039;, JLog::ERROR, &#039;my-error-category&#039;);&lt;br /&gt;
&lt;br /&gt;
Параметры&lt;br /&gt;
# Строка сообщения. Вы можете использовать перевод, например, &amp;lt;tt&amp;gt;JText::_(&#039;MY_EXTENSION_ERR_MSG&#039;)&amp;lt;/tt&amp;gt;. Вы также можете отображать значения переменных при условии, что вы конвертируете их в строковый формат (например, с помощью &amp;lt;tt&amp;gt;__toString ()&amp;lt;/tt&amp;gt;, если тип переменной это поддерживает). &lt;br /&gt;
# Приоритет, который может быть одним из: JLog::EMERGENCY, JLog::ALERT, JLog::CRITICAL, JLog::ERROR, JLog::WARNING, JLog::NOTICE, JLog::INFO, JLog::DEBUG (основано на уровнях серьёзности syslog / RFC 5424 – подробнее в [https://ru.wikipedia.org/wiki/Syslog материале Wikipedia о syslog]).&lt;br /&gt;
# Категория, которая является просто текстовой строкой. Вы можете определить любые категории, которые вам нравятся. Лучше всего определять их, чтобы избежать возможных конфликтов с другими расширениями. &lt;br /&gt;
&lt;br /&gt;
Если вы включите диагностические сообщения отладки в ваше расширение, то это может быть очень полезно при устранении неполадок. В этом случае добавьте к своему лог сообщению проверку на JDEBUG:&lt;br /&gt;
&lt;br /&gt;
    if (JDEBUG) &lt;br /&gt;
    {&lt;br /&gt;
        JLog::add(&#039;my debug message&#039;, JLog::DEBUG, &#039;my-debug-category&#039;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
== Логирование в определённый файл логов == &lt;br /&gt;
Вы можете использовать &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;, чтобы настроить ведение логов в дополнительный файл логов, отфильтровывая сообщения логов по приоритету (уровень серьезности) и / или категории. Параметры &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
# массив с деталями конфигурации - включая имя файла логов&lt;br /&gt;
# уровни серьезности, которые будут логироваться в этом файле&lt;br /&gt;
# массив категорий, которые будут логироваться в этом файле (или если для параметра 4 установлено значение &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;, тогда этот массив определяет категории, которые НЕ должны регистрироваться в файле)&lt;br /&gt;
# (часто пропускается) логическое значение, указывающее, является ли параметр 3 списком включения (по умолчанию P4 = &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;) или списком исключения (P4 = &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Например, если вы разработали расширение &#039;com_helloworld&#039;, вы можете использовать следующее:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.log.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets messages of all log levels to be sent to the file&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
            // The log category/categories which should be recorded in this file&lt;br /&gt;
            // In this case, it&#039;s just the one category from our extension, still&lt;br /&gt;
            // we need to put it inside an array&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Затем, когда вы логируете сообщение, укажите категорию &#039;com_helloworld&#039;, как в примере ниже&lt;br /&gt;
&lt;br /&gt;
    JLog::add(JText::_(&#039;COM_HELLOWORLD_ERROR_MESSAGE_123&#039;), JLog::ERROR, &#039;com_helloworld&#039;);&lt;br /&gt;
&lt;br /&gt;
Это приведет к тому, что ваше сообщение будет записано в com_helloworld.log.php. Если в настройках плагина «Система - Отладка» для параметра «Протоколировать все» задано значение «Да», то это сообщение появится и в общем файле журнала everything.php.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Вы можете объединить это с [[S:MyLanguage/Display error messages and notices|Display error messages and notices]] для отображения видимых уведомлений об ошибках для пользователей.&lt;br /&gt;
&lt;br /&gt;
Вы также можете добавить дополнительный логгер для сбора только критических и аварийных уведомлений:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets critical and emergency log level messages to be sent to the file&lt;br /&gt;
        JLog::CRITICAL + JLog::EMERGENCY,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Вы также можете исключить определенный уровень приоритета от включения в файл логов. Например, чтобы логировать все сообщения кроме DEBUG:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.all_but_debug.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Уровни приоритета &amp;lt;tt&amp;gt;JLog&amp;lt;/tt&amp;gt; реализованы в виде отдельных битов целого числа, поэтому вы можете использовать &#039;&#039;&#039;побитовые&#039;&#039;&#039; операции  (побитовое AND, &amp;amp;; и побитовое NOT, ~) для вычисления подходящих уровней логов. &amp;lt;tt&amp;gt;JLog::All&amp;lt;/tt&amp;gt; является постоянным целым числом, в котором установлены все соответствующие биты, поэтому включены все уровни приоритета Joomla. &lt;br /&gt;
&lt;br /&gt;
== Форматирование файла логов ==&lt;br /&gt;
&lt;br /&gt;
Первый параметр &amp;lt;tt&amp;gt;addLogger&amp;lt;/tt&amp;gt; может иметь несколько необязательных дополнительных настроек в дополнение к параметру &amp;lt;tt&amp;gt;text_file&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, есть параметр &amp;lt;tt&amp;gt;text_entry_format&amp;lt;/tt&amp;gt;, указывающий формат каждой строки в вашем лог файле.&lt;br /&gt;
&lt;br /&gt;
Формат по умолчанию:&lt;br /&gt;
&lt;br /&gt;
    &#039;{DATETIME} {PRIORITY}      {CATEGORY}      {MESSAGE}&#039;&lt;br /&gt;
&lt;br /&gt;
Вот пример другого формата, который показывает, как пропустить категорию:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;,&lt;br /&gt;
             // Sets the format of each line&lt;br /&gt;
             &#039;text_entry_format&#039; =&amp;gt; &#039;{DATETIME} {PRIORITY} {MESSAGE}&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Помимо заполнителей (placeholder), показанных выше в строке по умолчанию, доступны следующие значения:&lt;br /&gt;
&lt;br /&gt;
    {CLIENTIP}      (this is the IP address of the client)&lt;br /&gt;
    {TIME}&lt;br /&gt;
    {DATE}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Существует дополнительный необязательный логический параметр &amp;lt;tt&amp;gt;text_file_no_php&amp;lt;/tt&amp;gt;, который указывает, следует ли добавлять в файл логов обычный префикс:&lt;br /&gt;
&lt;br /&gt;
    #&lt;br /&gt;
    #&amp;lt;?php die(&#039;Forbidden.&#039;);?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Обычно вам не следует устанавливать для этого параметра значение &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;. Файлы логов не должны быть доступны для чтения извне, поскольку они могут предоставить злоумышленникам ценную информацию о вашей системе.&lt;br /&gt;
Изменяйте этот параметр, только если вы знаете, что делаете!&lt;br /&gt;
&lt;br /&gt;
Кроме того, если вы хотите сохранить файл логов где-то еще, а не по пути, указанному в общих настройках Joomla, вы можете изменить параметр &amp;lt;tt&amp;gt;text_file_path&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Логирование в другие места ==&lt;br /&gt;
&lt;br /&gt;
Помимо логирования в файлы, вы также можете логировать в другие места, такие как&lt;br /&gt;
* область сообщений Joomla (сообщение отображается, если вы вызываете &amp;lt;tt&amp;gt;JFactory::getApplication()-&amp;gt;enqueueMessage()&amp;lt;/tt&amp;gt;)&lt;br /&gt;
* таблица базы данных&lt;br /&gt;
* просто echo&lt;br /&gt;
Из них, пожалуй, наиболее полезным является логирование в панель сообщений, которое можно настроить следующим образом:&lt;br /&gt;
     JLog::addLogger(array(&#039;logger&#039; =&amp;gt; &#039;messagequeue&#039;), JLog::ALL, array(&#039;msg-error-cat&#039;));&lt;br /&gt;
Затем, когда вы делаете:&lt;br /&gt;
     JLog::add(&#039;сообщение об ошибке для отображения&#039;, JLog::ERROR, &#039;msg-error-cat&#039;);&lt;br /&gt;
вы получаете сообщение, скопированное на панель сообщений.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Обратите внимание, что код ядра Joomla настраивает запись в очередь сообщений для категории &#039;jerror&#039;, поэтому, если вы используете эту категорию в своих сообщениях журнала, вы получите сообщение, отображаемое на панели сообщений.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
     JLog::add (&#039;ошибка скопирована на панель сообщений&#039;, JLog::ERROR, &#039;jerror&#039;);&lt;br /&gt;
приведет к тому, что сообщение будет отображаться в области сообщений Joomla, даже если вы явно не настроили такое поведение для своего логгера.&lt;br /&gt;
&lt;br /&gt;
== Исключения ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;JLog::add()&amp;lt;/code&amp;gt; кидает исключение, если не может записать в файл логов. Чтобы избежать этого, вам придется либо обернуть вызов в другую функцию, либо реализовать свой собственный класс логгера, а затем включить его:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Use mycustomlogger&lt;br /&gt;
             &#039;logger&#039; =&amp;gt; &#039;mycustomlogger&#039;,&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.errors.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
== Что ещё почитать == &lt;br /&gt;
Логирование в Joomla должно использоваться в тандеме с исключениями PHP, а не в качестве замены. Подробнее в [[S:MyLanguage/Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1|Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]].&lt;br /&gt;
&lt;br /&gt;
Другое руководство (немного устаревшее, но все же полезное) находится по адресу [http://eddify.me/posts/logging-in-joomla-with-jlog.html Logging in Joomla with JLog].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 1.7{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 2.5{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.0{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.x{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/17/ru&amp;diff=587402</id>
		<title>Translations:Using JLog/17/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/17/ru&amp;diff=587402"/>
		<updated>2019-01-16T08:32:53Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Например, есть параметр &amp;lt;tt&amp;gt;text_entry_format&amp;lt;/tt&amp;gt;, указывающий формат каждой строки в вашем лог файле.&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587401</id>
		<title>Using JLog/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587401"/>
		<updated>2019-01-16T08:32:23Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Обзор ==&lt;br /&gt;
Логирование в Joomla дает вам возможность логировать сообщения в файлы и на экран (в консоли отладки Joomla внизу веб-страницы), а основным классом Joomla, который для этого используется, является JLog. &lt;br /&gt;
&lt;br /&gt;
Логирование, в некоторой степени, может контролироваться динамически через общие настройки Joomla и путем настройки плагина «Система - Отладка» (поставляется с Joomla). В целом эти возможности позволяют вам:&lt;br /&gt;
* включать или отключать систему отладки - чтобы вы не потребляли ресурсы без необходимости, но при этом у вас оставалась информация для того, чтобы помочь в устранении неполадок, когда есть проблемы. Например, на живом сайте, на котором установлено ваше расширение.&lt;br /&gt;
* направлять сообщения логов в определенный файл логов вашего собственного расширения&lt;br /&gt;
* просматривать сообщения логов в консоли отладки - вы можете выбрать группу пользователей, для которых должны отображаться сообщения логов, чтобы на живом сайте разработчики могли видеть сообщения, в то время как другие пользователи не затрагивались.&lt;br /&gt;
* фильтровать сообщения консоли отладки по приоритету (например, INFO, DEBUG, WARNING и т. д.) и по категориям (вы можете сами определять свои категории).&lt;br /&gt;
Кроме того, сообщения логов могут быть переведены на разные языки. &lt;br /&gt;
&lt;br /&gt;
Основные параметры конфигурации, относящиеся к ведению логов, показаны ниже.&lt;br /&gt;
&lt;br /&gt;
Включение отладки и отображение консоли отладки Joomla контролируется через общие настройки.&lt;br /&gt;
[[File:Global conf debug-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Логирование в общий файл логов контролируется с помощью вкладки Журнал (логи) конфигурации плагина Joomla «Система - Отладка» (в меню администратора нажмите «Расширения / Плагины», найдите плагин «Система - Отладка» и нажмите на него, чтобы изменить его параметры). &lt;br /&gt;
[[File:Debug logging settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Параметры на вкладке &amp;quot;Плагин&amp;quot; контролируют отображение в консоли отладки Joomla.&lt;br /&gt;
[[File:Debug plugin settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Базовое логирование в файл ==&lt;br /&gt;
&lt;br /&gt;
Чтобы отправить сообщение в лог, используйте функцию &amp;lt;tt&amp;gt;JLog::add()&amp;lt;/tt&amp;gt;. Например:&lt;br /&gt;
&lt;br /&gt;
    JLog::add(&#039;my error message&#039;, JLog::ERROR, &#039;my-error-category&#039;);&lt;br /&gt;
&lt;br /&gt;
Параметры&lt;br /&gt;
# Строка сообщения. Вы можете использовать перевод, например, &amp;lt;tt&amp;gt;JText::_(&#039;MY_EXTENSION_ERR_MSG&#039;)&amp;lt;/tt&amp;gt;. Вы также можете отображать значения переменных при условии, что вы конвертируете их в строковый формат (например, с помощью &amp;lt;tt&amp;gt;__toString ()&amp;lt;/tt&amp;gt;, если тип переменной это поддерживает). &lt;br /&gt;
# Приоритет, который может быть одним из: JLog::EMERGENCY, JLog::ALERT, JLog::CRITICAL, JLog::ERROR, JLog::WARNING, JLog::NOTICE, JLog::INFO, JLog::DEBUG (основано на уровнях серьёзности syslog / RFC 5424 – подробнее в [https://ru.wikipedia.org/wiki/Syslog материале Wikipedia о syslog]).&lt;br /&gt;
# Категория, которая является просто текстовой строкой. Вы можете определить любые категории, которые вам нравятся. Лучше всего определять их, чтобы избежать возможных конфликтов с другими расширениями. &lt;br /&gt;
&lt;br /&gt;
Если вы включите диагностические сообщения отладки в ваше расширение, то это может быть очень полезно при устранении неполадок. В этом случае добавьте к своему лог сообщению проверку на JDEBUG:&lt;br /&gt;
&lt;br /&gt;
    if (JDEBUG) &lt;br /&gt;
    {&lt;br /&gt;
        JLog::add(&#039;my debug message&#039;, JLog::DEBUG, &#039;my-debug-category&#039;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
== Логирование в определённый файл логов == &lt;br /&gt;
Вы можете использовать &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;, чтобы настроить ведение логов в дополнительный файл логов, отфильтровывая сообщения логов по приоритету (уровень серьезности) и / или категории. Параметры &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
# массив с деталями конфигурации - включая имя файла логов&lt;br /&gt;
# уровни серьезности, которые будут логироваться в этом файле&lt;br /&gt;
# массив категорий, которые будут логироваться в этом файле (или если для параметра 4 установлено значение &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;, тогда этот массив определяет категории, которые НЕ должны регистрироваться в файле)&lt;br /&gt;
# (часто пропускается) логическое значение, указывающее, является ли параметр 3 списком включения (по умолчанию P4 = &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;) или списком исключения (P4 = &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Например, если вы разработали расширение &#039;com_helloworld&#039;, вы можете использовать следующее:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.log.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets messages of all log levels to be sent to the file&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
            // The log category/categories which should be recorded in this file&lt;br /&gt;
            // In this case, it&#039;s just the one category from our extension, still&lt;br /&gt;
            // we need to put it inside an array&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Затем, когда вы логируете сообщение, укажите категорию &#039;com_helloworld&#039;, как в примере ниже&lt;br /&gt;
&lt;br /&gt;
    JLog::add(JText::_(&#039;COM_HELLOWORLD_ERROR_MESSAGE_123&#039;), JLog::ERROR, &#039;com_helloworld&#039;);&lt;br /&gt;
&lt;br /&gt;
Это приведет к тому, что ваше сообщение будет записано в com_helloworld.log.php. Если в настройках плагина «Система - Отладка» для параметра «Протоколировать все» задано значение «Да», то это сообщение появится и в общем файле журнала everything.php.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Вы можете объединить это с [[S:MyLanguage/Display error messages and notices|Display error messages and notices]] для отображения видимых уведомлений об ошибках для пользователей.&lt;br /&gt;
&lt;br /&gt;
Вы также можете добавить дополнительный логгер для сбора только критических и аварийных уведомлений:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets critical and emergency log level messages to be sent to the file&lt;br /&gt;
        JLog::CRITICAL + JLog::EMERGENCY,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Вы также можете исключить определенный уровень приоритета от включения в файл логов. Например, чтобы логировать все сообщения кроме DEBUG:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.all_but_debug.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Уровни приоритета &amp;lt;tt&amp;gt;JLog&amp;lt;/tt&amp;gt; реализованы в виде отдельных битов целого числа, поэтому вы можете использовать &#039;&#039;&#039;побитовые&#039;&#039;&#039; операции  (побитовое AND, &amp;amp;; и побитовое NOT, ~) для вычисления подходящих уровней логов. &amp;lt;tt&amp;gt;JLog::All&amp;lt;/tt&amp;gt; является постоянным целым числом, в котором установлены все соответствующие биты, поэтому включены все уровни приоритета Joomla. &lt;br /&gt;
&lt;br /&gt;
== Форматирование файла логов ==&lt;br /&gt;
&lt;br /&gt;
Первый параметр &amp;lt;tt&amp;gt;addLogger&amp;lt;/tt&amp;gt; может иметь несколько необязательных дополнительных настроек в дополнение к параметру &amp;lt;tt&amp;gt;text_file&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, есть параметр &amp;lt;tt&amp;gt;text_entry_format&amp;lt;/tt&amp;gt;, указывающая формат каждой строки в вашем лог файле.&lt;br /&gt;
&lt;br /&gt;
Формат по умолчанию:&lt;br /&gt;
&lt;br /&gt;
    &#039;{DATETIME} {PRIORITY}      {CATEGORY}      {MESSAGE}&#039;&lt;br /&gt;
&lt;br /&gt;
Вот пример другого формата, который показывает, как пропустить категорию:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;,&lt;br /&gt;
             // Sets the format of each line&lt;br /&gt;
             &#039;text_entry_format&#039; =&amp;gt; &#039;{DATETIME} {PRIORITY} {MESSAGE}&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Помимо заполнителей (placeholder), показанных выше в строке по умолчанию, доступны следующие значения:&lt;br /&gt;
&lt;br /&gt;
    {CLIENTIP}      (this is the IP address of the client)&lt;br /&gt;
    {TIME}&lt;br /&gt;
    {DATE}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Существует дополнительный необязательный логический параметр &amp;lt;tt&amp;gt;text_file_no_php&amp;lt;/tt&amp;gt;, который указывает, следует ли добавлять в файл логов обычный префикс:&lt;br /&gt;
&lt;br /&gt;
    #&lt;br /&gt;
    #&amp;lt;?php die(&#039;Forbidden.&#039;);?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Обычно вам не следует устанавливать для этого параметра значение &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;. Файлы логов не должны быть доступны для чтения извне, поскольку они могут предоставить злоумышленникам ценную информацию о вашей системе.&lt;br /&gt;
Изменяйте этот параметр, только если вы знаете, что делаете!&lt;br /&gt;
&lt;br /&gt;
Кроме того, если вы хотите сохранить файл логов где-то еще, а не по пути, указанному в общих настройках Joomla, вы можете изменить параметр &amp;lt;tt&amp;gt;text_file_path&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Логирование в другие места ==&lt;br /&gt;
&lt;br /&gt;
Помимо логирования в файлы, вы также можете логировать в другие места, такие как&lt;br /&gt;
* область сообщений Joomla (сообщение отображается, если вы вызываете &amp;lt;tt&amp;gt;JFactory::getApplication()-&amp;gt;enqueueMessage()&amp;lt;/tt&amp;gt;)&lt;br /&gt;
* таблица базы данных&lt;br /&gt;
* просто echo&lt;br /&gt;
Из них, пожалуй, наиболее полезным является логирование в панель сообщений, которое можно настроить следующим образом:&lt;br /&gt;
     JLog::addLogger(array(&#039;logger&#039; =&amp;gt; &#039;messagequeue&#039;), JLog::ALL, array(&#039;msg-error-cat&#039;));&lt;br /&gt;
Затем, когда вы делаете:&lt;br /&gt;
     JLog::add(&#039;сообщение об ошибке для отображения&#039;, JLog::ERROR, &#039;msg-error-cat&#039;);&lt;br /&gt;
вы получаете сообщение, скопированное на панель сообщений.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Обратите внимание, что код ядра Joomla настраивает запись в очередь сообщений для категории &#039;jerror&#039;, поэтому, если вы используете эту категорию в своих сообщениях журнала, вы получите сообщение, отображаемое на панели сообщений.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
     JLog::add (&#039;ошибка скопирована на панель сообщений&#039;, JLog::ERROR, &#039;jerror&#039;);&lt;br /&gt;
приведет к тому, что сообщение будет отображаться в области сообщений Joomla, даже если вы явно не настроили такое поведение для своего логгера.&lt;br /&gt;
&lt;br /&gt;
== Исключения ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;JLog::add()&amp;lt;/code&amp;gt; кидает исключение, если не может записать в файл логов. Чтобы избежать этого, вам придется либо обернуть вызов в другую функцию, либо реализовать свой собственный класс логгера, а затем включить его:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Use mycustomlogger&lt;br /&gt;
             &#039;logger&#039; =&amp;gt; &#039;mycustomlogger&#039;,&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.errors.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
== Что ещё почитать == &lt;br /&gt;
Логирование в Joomla должно использоваться в тандеме с исключениями PHP, а не в качестве замены. Подробнее в [[S:MyLanguage/Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1|Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]].&lt;br /&gt;
&lt;br /&gt;
Другое руководство (немного устаревшее, но все же полезное) находится по адресу [http://eddify.me/posts/logging-in-joomla-with-jlog.html Logging in Joomla with JLog].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 1.7{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 2.5{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.0{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.x{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/16/ru&amp;diff=587400</id>
		<title>Translations:Using JLog/16/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/16/ru&amp;diff=587400"/>
		<updated>2019-01-16T08:32:23Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Первый параметр &amp;lt;tt&amp;gt;addLogger&amp;lt;/tt&amp;gt; может иметь несколько необязательных дополнительных настроек в дополнение к параметру &amp;lt;tt&amp;gt;text_file&amp;lt;/tt&amp;gt;.&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587399</id>
		<title>Using JLog/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587399"/>
		<updated>2019-01-16T08:31:50Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Обзор ==&lt;br /&gt;
Логирование в Joomla дает вам возможность логировать сообщения в файлы и на экран (в консоли отладки Joomla внизу веб-страницы), а основным классом Joomla, который для этого используется, является JLog. &lt;br /&gt;
&lt;br /&gt;
Логирование, в некоторой степени, может контролироваться динамически через общие настройки Joomla и путем настройки плагина «Система - Отладка» (поставляется с Joomla). В целом эти возможности позволяют вам:&lt;br /&gt;
* включать или отключать систему отладки - чтобы вы не потребляли ресурсы без необходимости, но при этом у вас оставалась информация для того, чтобы помочь в устранении неполадок, когда есть проблемы. Например, на живом сайте, на котором установлено ваше расширение.&lt;br /&gt;
* направлять сообщения логов в определенный файл логов вашего собственного расширения&lt;br /&gt;
* просматривать сообщения логов в консоли отладки - вы можете выбрать группу пользователей, для которых должны отображаться сообщения логов, чтобы на живом сайте разработчики могли видеть сообщения, в то время как другие пользователи не затрагивались.&lt;br /&gt;
* фильтровать сообщения консоли отладки по приоритету (например, INFO, DEBUG, WARNING и т. д.) и по категориям (вы можете сами определять свои категории).&lt;br /&gt;
Кроме того, сообщения логов могут быть переведены на разные языки. &lt;br /&gt;
&lt;br /&gt;
Основные параметры конфигурации, относящиеся к ведению логов, показаны ниже.&lt;br /&gt;
&lt;br /&gt;
Включение отладки и отображение консоли отладки Joomla контролируется через общие настройки.&lt;br /&gt;
[[File:Global conf debug-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Логирование в общий файл логов контролируется с помощью вкладки Журнал (логи) конфигурации плагина Joomla «Система - Отладка» (в меню администратора нажмите «Расширения / Плагины», найдите плагин «Система - Отладка» и нажмите на него, чтобы изменить его параметры). &lt;br /&gt;
[[File:Debug logging settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Параметры на вкладке &amp;quot;Плагин&amp;quot; контролируют отображение в консоли отладки Joomla.&lt;br /&gt;
[[File:Debug plugin settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Базовое логирование в файл ==&lt;br /&gt;
&lt;br /&gt;
Чтобы отправить сообщение в лог, используйте функцию &amp;lt;tt&amp;gt;JLog::add()&amp;lt;/tt&amp;gt;. Например:&lt;br /&gt;
&lt;br /&gt;
    JLog::add(&#039;my error message&#039;, JLog::ERROR, &#039;my-error-category&#039;);&lt;br /&gt;
&lt;br /&gt;
Параметры&lt;br /&gt;
# Строка сообщения. Вы можете использовать перевод, например, &amp;lt;tt&amp;gt;JText::_(&#039;MY_EXTENSION_ERR_MSG&#039;)&amp;lt;/tt&amp;gt;. Вы также можете отображать значения переменных при условии, что вы конвертируете их в строковый формат (например, с помощью &amp;lt;tt&amp;gt;__toString ()&amp;lt;/tt&amp;gt;, если тип переменной это поддерживает). &lt;br /&gt;
# Приоритет, который может быть одним из: JLog::EMERGENCY, JLog::ALERT, JLog::CRITICAL, JLog::ERROR, JLog::WARNING, JLog::NOTICE, JLog::INFO, JLog::DEBUG (основано на уровнях серьёзности syslog / RFC 5424 – подробнее в [https://ru.wikipedia.org/wiki/Syslog материале Wikipedia о syslog]).&lt;br /&gt;
# Категория, которая является просто текстовой строкой. Вы можете определить любые категории, которые вам нравятся. Лучше всего определять их, чтобы избежать возможных конфликтов с другими расширениями. &lt;br /&gt;
&lt;br /&gt;
Если вы включите диагностические сообщения отладки в ваше расширение, то это может быть очень полезно при устранении неполадок. В этом случае добавьте к своему лог сообщению проверку на JDEBUG:&lt;br /&gt;
&lt;br /&gt;
    if (JDEBUG) &lt;br /&gt;
    {&lt;br /&gt;
        JLog::add(&#039;my debug message&#039;, JLog::DEBUG, &#039;my-debug-category&#039;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
== Логирование в определённый файл логов == &lt;br /&gt;
Вы можете использовать &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;, чтобы настроить ведение логов в дополнительный файл логов, отфильтровывая сообщения логов по приоритету (уровень серьезности) и / или категории. Параметры &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
# массив с деталями конфигурации - включая имя файла логов&lt;br /&gt;
# уровни серьезности, которые будут логироваться в этом файле&lt;br /&gt;
# массив категорий, которые будут логироваться в этом файле (или если для параметра 4 установлено значение &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;, тогда этот массив определяет категории, которые НЕ должны регистрироваться в файле)&lt;br /&gt;
# (часто пропускается) логическое значение, указывающее, является ли параметр 3 списком включения (по умолчанию P4 = &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;) или списком исключения (P4 = &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Например, если вы разработали расширение &#039;com_helloworld&#039;, вы можете использовать следующее:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.log.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets messages of all log levels to be sent to the file&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
            // The log category/categories which should be recorded in this file&lt;br /&gt;
            // In this case, it&#039;s just the one category from our extension, still&lt;br /&gt;
            // we need to put it inside an array&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Затем, когда вы логируете сообщение, укажите категорию &#039;com_helloworld&#039;, как в примере ниже&lt;br /&gt;
&lt;br /&gt;
    JLog::add(JText::_(&#039;COM_HELLOWORLD_ERROR_MESSAGE_123&#039;), JLog::ERROR, &#039;com_helloworld&#039;);&lt;br /&gt;
&lt;br /&gt;
Это приведет к тому, что ваше сообщение будет записано в com_helloworld.log.php. Если в настройках плагина «Система - Отладка» для параметра «Протоколировать все» задано значение «Да», то это сообщение появится и в общем файле журнала everything.php.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Вы можете объединить это с [[S:MyLanguage/Display error messages and notices|Display error messages and notices]] для отображения видимых уведомлений об ошибках для пользователей.&lt;br /&gt;
&lt;br /&gt;
Вы также можете добавить дополнительный логгер для сбора только критических и аварийных уведомлений:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets critical and emergency log level messages to be sent to the file&lt;br /&gt;
        JLog::CRITICAL + JLog::EMERGENCY,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Вы также можете исключить определенный уровень приоритета от включения в файл логов. Например, чтобы логировать все сообщения кроме DEBUG:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.all_but_debug.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Уровни приоритета &amp;lt;tt&amp;gt;JLog&amp;lt;/tt&amp;gt; реализованы в виде отдельных битов целого числа, поэтому вы можете использовать &#039;&#039;&#039;побитовые&#039;&#039;&#039; операции  (побитовое AND, &amp;amp;; и побитовое NOT, ~) для вычисления подходящих уровней логов. &amp;lt;tt&amp;gt;JLog::All&amp;lt;/tt&amp;gt; является постоянным целым числом, в котором установлены все соответствующие биты, поэтому включены все уровни приоритета Joomla. &lt;br /&gt;
&lt;br /&gt;
== Форматирование файла логов ==&lt;br /&gt;
&lt;br /&gt;
Первый параметр &amp;lt;tt&amp;gt;addLogger&amp;lt;/tt&amp;gt; может иметь несколько необязательных дополнительных настроек в дополнение к записи &amp;lt;tt&amp;gt;text_file&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, есть параметр &amp;lt;tt&amp;gt;text_entry_format&amp;lt;/tt&amp;gt;, указывающая формат каждой строки в вашем лог файле.&lt;br /&gt;
&lt;br /&gt;
Формат по умолчанию:&lt;br /&gt;
&lt;br /&gt;
    &#039;{DATETIME} {PRIORITY}      {CATEGORY}      {MESSAGE}&#039;&lt;br /&gt;
&lt;br /&gt;
Вот пример другого формата, который показывает, как пропустить категорию:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;,&lt;br /&gt;
             // Sets the format of each line&lt;br /&gt;
             &#039;text_entry_format&#039; =&amp;gt; &#039;{DATETIME} {PRIORITY} {MESSAGE}&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Помимо заполнителей (placeholder), показанных выше в строке по умолчанию, доступны следующие значения:&lt;br /&gt;
&lt;br /&gt;
    {CLIENTIP}      (this is the IP address of the client)&lt;br /&gt;
    {TIME}&lt;br /&gt;
    {DATE}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Существует дополнительный необязательный логический параметр &amp;lt;tt&amp;gt;text_file_no_php&amp;lt;/tt&amp;gt;, который указывает, следует ли добавлять в файл логов обычный префикс:&lt;br /&gt;
&lt;br /&gt;
    #&lt;br /&gt;
    #&amp;lt;?php die(&#039;Forbidden.&#039;);?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Обычно вам не следует устанавливать для этого параметра значение &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;. Файлы логов не должны быть доступны для чтения извне, поскольку они могут предоставить злоумышленникам ценную информацию о вашей системе.&lt;br /&gt;
Изменяйте этот параметр, только если вы знаете, что делаете!&lt;br /&gt;
&lt;br /&gt;
Кроме того, если вы хотите сохранить файл логов где-то еще, а не по пути, указанному в общих настройках Joomla, вы можете изменить параметр &amp;lt;tt&amp;gt;text_file_path&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Логирование в другие места ==&lt;br /&gt;
&lt;br /&gt;
Помимо логирования в файлы, вы также можете логировать в другие места, такие как&lt;br /&gt;
* область сообщений Joomla (сообщение отображается, если вы вызываете &amp;lt;tt&amp;gt;JFactory::getApplication()-&amp;gt;enqueueMessage()&amp;lt;/tt&amp;gt;)&lt;br /&gt;
* таблица базы данных&lt;br /&gt;
* просто echo&lt;br /&gt;
Из них, пожалуй, наиболее полезным является логирование в панель сообщений, которое можно настроить следующим образом:&lt;br /&gt;
     JLog::addLogger(array(&#039;logger&#039; =&amp;gt; &#039;messagequeue&#039;), JLog::ALL, array(&#039;msg-error-cat&#039;));&lt;br /&gt;
Затем, когда вы делаете:&lt;br /&gt;
     JLog::add(&#039;сообщение об ошибке для отображения&#039;, JLog::ERROR, &#039;msg-error-cat&#039;);&lt;br /&gt;
вы получаете сообщение, скопированное на панель сообщений.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Обратите внимание, что код ядра Joomla настраивает запись в очередь сообщений для категории &#039;jerror&#039;, поэтому, если вы используете эту категорию в своих сообщениях журнала, вы получите сообщение, отображаемое на панели сообщений.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
     JLog::add (&#039;ошибка скопирована на панель сообщений&#039;, JLog::ERROR, &#039;jerror&#039;);&lt;br /&gt;
приведет к тому, что сообщение будет отображаться в области сообщений Joomla, даже если вы явно не настроили такое поведение для своего логгера.&lt;br /&gt;
&lt;br /&gt;
== Исключения ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;JLog::add()&amp;lt;/code&amp;gt; кидает исключение, если не может записать в файл логов. Чтобы избежать этого, вам придется либо обернуть вызов в другую функцию, либо реализовать свой собственный класс логгера, а затем включить его:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Use mycustomlogger&lt;br /&gt;
             &#039;logger&#039; =&amp;gt; &#039;mycustomlogger&#039;,&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.errors.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
== Что ещё почитать == &lt;br /&gt;
Логирование в Joomla должно использоваться в тандеме с исключениями PHP, а не в качестве замены. Подробнее в [[S:MyLanguage/Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1|Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]].&lt;br /&gt;
&lt;br /&gt;
Другое руководство (немного устаревшее, но все же полезное) находится по адресу [http://eddify.me/posts/logging-in-joomla-with-jlog.html Logging in Joomla with JLog].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 1.7{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 2.5{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.0{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.x{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/40/ru&amp;diff=587398</id>
		<title>Translations:Using JLog/40/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/40/ru&amp;diff=587398"/>
		<updated>2019-01-16T08:31:50Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Логирование в определённый файл логов ==&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587397</id>
		<title>Using JLog/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587397"/>
		<updated>2019-01-16T08:31:29Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Обзор ==&lt;br /&gt;
Логирование в Joomla дает вам возможность логировать сообщения в файлы и на экран (в консоли отладки Joomla внизу веб-страницы), а основным классом Joomla, который для этого используется, является JLog. &lt;br /&gt;
&lt;br /&gt;
Логирование, в некоторой степени, может контролироваться динамически через общие настройки Joomla и путем настройки плагина «Система - Отладка» (поставляется с Joomla). В целом эти возможности позволяют вам:&lt;br /&gt;
* включать или отключать систему отладки - чтобы вы не потребляли ресурсы без необходимости, но при этом у вас оставалась информация для того, чтобы помочь в устранении неполадок, когда есть проблемы. Например, на живом сайте, на котором установлено ваше расширение.&lt;br /&gt;
* направлять сообщения логов в определенный файл логов вашего собственного расширения&lt;br /&gt;
* просматривать сообщения логов в консоли отладки - вы можете выбрать группу пользователей, для которых должны отображаться сообщения логов, чтобы на живом сайте разработчики могли видеть сообщения, в то время как другие пользователи не затрагивались.&lt;br /&gt;
* фильтровать сообщения консоли отладки по приоритету (например, INFO, DEBUG, WARNING и т. д.) и по категориям (вы можете сами определять свои категории).&lt;br /&gt;
Кроме того, сообщения логов могут быть переведены на разные языки. &lt;br /&gt;
&lt;br /&gt;
Основные параметры конфигурации, относящиеся к ведению логов, показаны ниже.&lt;br /&gt;
&lt;br /&gt;
Включение отладки и отображение консоли отладки Joomla контролируется через общие настройки.&lt;br /&gt;
[[File:Global conf debug-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Логирование в общий файл логов контролируется с помощью вкладки Журнал (логи) конфигурации плагина Joomla «Система - Отладка» (в меню администратора нажмите «Расширения / Плагины», найдите плагин «Система - Отладка» и нажмите на него, чтобы изменить его параметры). &lt;br /&gt;
[[File:Debug logging settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Параметры на вкладке &amp;quot;Плагин&amp;quot; контролируют отображение в консоли отладки Joomla.&lt;br /&gt;
[[File:Debug plugin settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Базовое логирование в файл ==&lt;br /&gt;
&lt;br /&gt;
Чтобы отправить сообщение в лог, используйте функцию &amp;lt;tt&amp;gt;JLog::add()&amp;lt;/tt&amp;gt;. Например:&lt;br /&gt;
&lt;br /&gt;
    JLog::add(&#039;my error message&#039;, JLog::ERROR, &#039;my-error-category&#039;);&lt;br /&gt;
&lt;br /&gt;
Параметры&lt;br /&gt;
# Строка сообщения. Вы можете использовать перевод, например, &amp;lt;tt&amp;gt;JText::_(&#039;MY_EXTENSION_ERR_MSG&#039;)&amp;lt;/tt&amp;gt;. Вы также можете отображать значения переменных при условии, что вы конвертируете их в строковый формат (например, с помощью &amp;lt;tt&amp;gt;__toString ()&amp;lt;/tt&amp;gt;, если тип переменной это поддерживает). &lt;br /&gt;
# Приоритет, который может быть одним из: JLog::EMERGENCY, JLog::ALERT, JLog::CRITICAL, JLog::ERROR, JLog::WARNING, JLog::NOTICE, JLog::INFO, JLog::DEBUG (основано на уровнях серьёзности syslog / RFC 5424 – подробнее в [https://ru.wikipedia.org/wiki/Syslog материале Wikipedia о syslog]).&lt;br /&gt;
# Категория, которая является просто текстовой строкой. Вы можете определить любые категории, которые вам нравятся. Лучше всего определять их, чтобы избежать возможных конфликтов с другими расширениями. &lt;br /&gt;
&lt;br /&gt;
Если вы включите диагностические сообщения отладки в ваше расширение, то это может быть очень полезно при устранении неполадок. В этом случае добавьте к своему лог сообщению проверку на JDEBUG:&lt;br /&gt;
&lt;br /&gt;
    if (JDEBUG) &lt;br /&gt;
    {&lt;br /&gt;
        JLog::add(&#039;my debug message&#039;, JLog::DEBUG, &#039;my-debug-category&#039;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
== Логирование в определённый файл лога == &lt;br /&gt;
Вы можете использовать &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;, чтобы настроить ведение логов в дополнительный файл логов, отфильтровывая сообщения логов по приоритету (уровень серьезности) и / или категории. Параметры &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
# массив с деталями конфигурации - включая имя файла логов&lt;br /&gt;
# уровни серьезности, которые будут логироваться в этом файле&lt;br /&gt;
# массив категорий, которые будут логироваться в этом файле (или если для параметра 4 установлено значение &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;, тогда этот массив определяет категории, которые НЕ должны регистрироваться в файле)&lt;br /&gt;
# (часто пропускается) логическое значение, указывающее, является ли параметр 3 списком включения (по умолчанию P4 = &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;) или списком исключения (P4 = &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Например, если вы разработали расширение &#039;com_helloworld&#039;, вы можете использовать следующее:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.log.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets messages of all log levels to be sent to the file&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
            // The log category/categories which should be recorded in this file&lt;br /&gt;
            // In this case, it&#039;s just the one category from our extension, still&lt;br /&gt;
            // we need to put it inside an array&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Затем, когда вы логируете сообщение, укажите категорию &#039;com_helloworld&#039;, как в примере ниже&lt;br /&gt;
&lt;br /&gt;
    JLog::add(JText::_(&#039;COM_HELLOWORLD_ERROR_MESSAGE_123&#039;), JLog::ERROR, &#039;com_helloworld&#039;);&lt;br /&gt;
&lt;br /&gt;
Это приведет к тому, что ваше сообщение будет записано в com_helloworld.log.php. Если в настройках плагина «Система - Отладка» для параметра «Протоколировать все» задано значение «Да», то это сообщение появится и в общем файле журнала everything.php.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Вы можете объединить это с [[S:MyLanguage/Display error messages and notices|Display error messages and notices]] для отображения видимых уведомлений об ошибках для пользователей.&lt;br /&gt;
&lt;br /&gt;
Вы также можете добавить дополнительный логгер для сбора только критических и аварийных уведомлений:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets critical and emergency log level messages to be sent to the file&lt;br /&gt;
        JLog::CRITICAL + JLog::EMERGENCY,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Вы также можете исключить определенный уровень приоритета от включения в файл логов. Например, чтобы логировать все сообщения кроме DEBUG:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.all_but_debug.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Уровни приоритета &amp;lt;tt&amp;gt;JLog&amp;lt;/tt&amp;gt; реализованы в виде отдельных битов целого числа, поэтому вы можете использовать &#039;&#039;&#039;побитовые&#039;&#039;&#039; операции  (побитовое AND, &amp;amp;; и побитовое NOT, ~) для вычисления подходящих уровней логов. &amp;lt;tt&amp;gt;JLog::All&amp;lt;/tt&amp;gt; является постоянным целым числом, в котором установлены все соответствующие биты, поэтому включены все уровни приоритета Joomla. &lt;br /&gt;
&lt;br /&gt;
== Форматирование файла логов ==&lt;br /&gt;
&lt;br /&gt;
Первый параметр &amp;lt;tt&amp;gt;addLogger&amp;lt;/tt&amp;gt; может иметь несколько необязательных дополнительных настроек в дополнение к записи &amp;lt;tt&amp;gt;text_file&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, есть параметр &amp;lt;tt&amp;gt;text_entry_format&amp;lt;/tt&amp;gt;, указывающая формат каждой строки в вашем лог файле.&lt;br /&gt;
&lt;br /&gt;
Формат по умолчанию:&lt;br /&gt;
&lt;br /&gt;
    &#039;{DATETIME} {PRIORITY}      {CATEGORY}      {MESSAGE}&#039;&lt;br /&gt;
&lt;br /&gt;
Вот пример другого формата, который показывает, как пропустить категорию:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;,&lt;br /&gt;
             // Sets the format of each line&lt;br /&gt;
             &#039;text_entry_format&#039; =&amp;gt; &#039;{DATETIME} {PRIORITY} {MESSAGE}&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Помимо заполнителей (placeholder), показанных выше в строке по умолчанию, доступны следующие значения:&lt;br /&gt;
&lt;br /&gt;
    {CLIENTIP}      (this is the IP address of the client)&lt;br /&gt;
    {TIME}&lt;br /&gt;
    {DATE}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Существует дополнительный необязательный логический параметр &amp;lt;tt&amp;gt;text_file_no_php&amp;lt;/tt&amp;gt;, который указывает, следует ли добавлять в файл логов обычный префикс:&lt;br /&gt;
&lt;br /&gt;
    #&lt;br /&gt;
    #&amp;lt;?php die(&#039;Forbidden.&#039;);?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Обычно вам не следует устанавливать для этого параметра значение &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;. Файлы логов не должны быть доступны для чтения извне, поскольку они могут предоставить злоумышленникам ценную информацию о вашей системе.&lt;br /&gt;
Изменяйте этот параметр, только если вы знаете, что делаете!&lt;br /&gt;
&lt;br /&gt;
Кроме того, если вы хотите сохранить файл логов где-то еще, а не по пути, указанному в общих настройках Joomla, вы можете изменить параметр &amp;lt;tt&amp;gt;text_file_path&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Логирование в другие места ==&lt;br /&gt;
&lt;br /&gt;
Помимо логирования в файлы, вы также можете логировать в другие места, такие как&lt;br /&gt;
* область сообщений Joomla (сообщение отображается, если вы вызываете &amp;lt;tt&amp;gt;JFactory::getApplication()-&amp;gt;enqueueMessage()&amp;lt;/tt&amp;gt;)&lt;br /&gt;
* таблица базы данных&lt;br /&gt;
* просто echo&lt;br /&gt;
Из них, пожалуй, наиболее полезным является логирование в панель сообщений, которое можно настроить следующим образом:&lt;br /&gt;
     JLog::addLogger(array(&#039;logger&#039; =&amp;gt; &#039;messagequeue&#039;), JLog::ALL, array(&#039;msg-error-cat&#039;));&lt;br /&gt;
Затем, когда вы делаете:&lt;br /&gt;
     JLog::add(&#039;сообщение об ошибке для отображения&#039;, JLog::ERROR, &#039;msg-error-cat&#039;);&lt;br /&gt;
вы получаете сообщение, скопированное на панель сообщений.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Обратите внимание, что код ядра Joomla настраивает запись в очередь сообщений для категории &#039;jerror&#039;, поэтому, если вы используете эту категорию в своих сообщениях журнала, вы получите сообщение, отображаемое на панели сообщений.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
     JLog::add (&#039;ошибка скопирована на панель сообщений&#039;, JLog::ERROR, &#039;jerror&#039;);&lt;br /&gt;
приведет к тому, что сообщение будет отображаться в области сообщений Joomla, даже если вы явно не настроили такое поведение для своего логгера.&lt;br /&gt;
&lt;br /&gt;
== Исключения ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;JLog::add()&amp;lt;/code&amp;gt; кидает исключение, если не может записать в файл логов. Чтобы избежать этого, вам придется либо обернуть вызов в другую функцию, либо реализовать свой собственный класс логгера, а затем включить его:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Use mycustomlogger&lt;br /&gt;
             &#039;logger&#039; =&amp;gt; &#039;mycustomlogger&#039;,&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.errors.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
== Что ещё почитать == &lt;br /&gt;
Логирование в Joomla должно использоваться в тандеме с исключениями PHP, а не в качестве замены. Подробнее в [[S:MyLanguage/Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1|Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]].&lt;br /&gt;
&lt;br /&gt;
Другое руководство (немного устаревшее, но все же полезное) находится по адресу [http://eddify.me/posts/logging-in-joomla-with-jlog.html Logging in Joomla with JLog].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 1.7{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 2.5{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.0{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.x{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/15/ru&amp;diff=587396</id>
		<title>Translations:Using JLog/15/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/15/ru&amp;diff=587396"/>
		<updated>2019-01-16T08:31:28Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Форматирование файла логов ==&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587395</id>
		<title>Using JLog/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587395"/>
		<updated>2019-01-16T08:31:10Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Обзор ==&lt;br /&gt;
Логирование в Joomla дает вам возможность логировать сообщения в файлы и на экран (в консоли отладки Joomla внизу веб-страницы), а основным классом Joomla, который для этого используется, является JLog. &lt;br /&gt;
&lt;br /&gt;
Логирование, в некоторой степени, может контролироваться динамически через общие настройки Joomla и путем настройки плагина «Система - Отладка» (поставляется с Joomla). В целом эти возможности позволяют вам:&lt;br /&gt;
* включать или отключать систему отладки - чтобы вы не потребляли ресурсы без необходимости, но при этом у вас оставалась информация для того, чтобы помочь в устранении неполадок, когда есть проблемы. Например, на живом сайте, на котором установлено ваше расширение.&lt;br /&gt;
* направлять сообщения логов в определенный файл логов вашего собственного расширения&lt;br /&gt;
* просматривать сообщения логов в консоли отладки - вы можете выбрать группу пользователей, для которых должны отображаться сообщения логов, чтобы на живом сайте разработчики могли видеть сообщения, в то время как другие пользователи не затрагивались.&lt;br /&gt;
* фильтровать сообщения консоли отладки по приоритету (например, INFO, DEBUG, WARNING и т. д.) и по категориям (вы можете сами определять свои категории).&lt;br /&gt;
Кроме того, сообщения логов могут быть переведены на разные языки. &lt;br /&gt;
&lt;br /&gt;
Основные параметры конфигурации, относящиеся к ведению логов, показаны ниже.&lt;br /&gt;
&lt;br /&gt;
Включение отладки и отображение консоли отладки Joomla контролируется через общие настройки.&lt;br /&gt;
[[File:Global conf debug-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Логирование в общий файл логов контролируется с помощью вкладки Журнал (логи) конфигурации плагина Joomla «Система - Отладка» (в меню администратора нажмите «Расширения / Плагины», найдите плагин «Система - Отладка» и нажмите на него, чтобы изменить его параметры). &lt;br /&gt;
[[File:Debug logging settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Параметры на вкладке &amp;quot;Плагин&amp;quot; контролируют отображение в консоли отладки Joomla.&lt;br /&gt;
[[File:Debug plugin settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Базовое логирование в файл ==&lt;br /&gt;
&lt;br /&gt;
Чтобы отправить сообщение в лог, используйте функцию &amp;lt;tt&amp;gt;JLog::add()&amp;lt;/tt&amp;gt;. Например:&lt;br /&gt;
&lt;br /&gt;
    JLog::add(&#039;my error message&#039;, JLog::ERROR, &#039;my-error-category&#039;);&lt;br /&gt;
&lt;br /&gt;
Параметры&lt;br /&gt;
# Строка сообщения. Вы можете использовать перевод, например, &amp;lt;tt&amp;gt;JText::_(&#039;MY_EXTENSION_ERR_MSG&#039;)&amp;lt;/tt&amp;gt;. Вы также можете отображать значения переменных при условии, что вы конвертируете их в строковый формат (например, с помощью &amp;lt;tt&amp;gt;__toString ()&amp;lt;/tt&amp;gt;, если тип переменной это поддерживает). &lt;br /&gt;
# Приоритет, который может быть одним из: JLog::EMERGENCY, JLog::ALERT, JLog::CRITICAL, JLog::ERROR, JLog::WARNING, JLog::NOTICE, JLog::INFO, JLog::DEBUG (основано на уровнях серьёзности syslog / RFC 5424 – подробнее в [https://ru.wikipedia.org/wiki/Syslog материале Wikipedia о syslog]).&lt;br /&gt;
# Категория, которая является просто текстовой строкой. Вы можете определить любые категории, которые вам нравятся. Лучше всего определять их, чтобы избежать возможных конфликтов с другими расширениями. &lt;br /&gt;
&lt;br /&gt;
Если вы включите диагностические сообщения отладки в ваше расширение, то это может быть очень полезно при устранении неполадок. В этом случае добавьте к своему лог сообщению проверку на JDEBUG:&lt;br /&gt;
&lt;br /&gt;
    if (JDEBUG) &lt;br /&gt;
    {&lt;br /&gt;
        JLog::add(&#039;my debug message&#039;, JLog::DEBUG, &#039;my-debug-category&#039;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
== Логирование в определённый файл лога == &lt;br /&gt;
Вы можете использовать &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;, чтобы настроить ведение логов в дополнительный файл логов, отфильтровывая сообщения логов по приоритету (уровень серьезности) и / или категории. Параметры &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
# массив с деталями конфигурации - включая имя файла логов&lt;br /&gt;
# уровни серьезности, которые будут логироваться в этом файле&lt;br /&gt;
# массив категорий, которые будут логироваться в этом файле (или если для параметра 4 установлено значение &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;, тогда этот массив определяет категории, которые НЕ должны регистрироваться в файле)&lt;br /&gt;
# (часто пропускается) логическое значение, указывающее, является ли параметр 3 списком включения (по умолчанию P4 = &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;) или списком исключения (P4 = &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Например, если вы разработали расширение &#039;com_helloworld&#039;, вы можете использовать следующее:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.log.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets messages of all log levels to be sent to the file&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
            // The log category/categories which should be recorded in this file&lt;br /&gt;
            // In this case, it&#039;s just the one category from our extension, still&lt;br /&gt;
            // we need to put it inside an array&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Затем, когда вы логируете сообщение, укажите категорию &#039;com_helloworld&#039;, как в примере ниже&lt;br /&gt;
&lt;br /&gt;
    JLog::add(JText::_(&#039;COM_HELLOWORLD_ERROR_MESSAGE_123&#039;), JLog::ERROR, &#039;com_helloworld&#039;);&lt;br /&gt;
&lt;br /&gt;
Это приведет к тому, что ваше сообщение будет записано в com_helloworld.log.php. Если в настройках плагина «Система - Отладка» для параметра «Протоколировать все» задано значение «Да», то это сообщение появится и в общем файле журнала everything.php.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Вы можете объединить это с [[S:MyLanguage/Display error messages and notices|Display error messages and notices]] для отображения видимых уведомлений об ошибках для пользователей.&lt;br /&gt;
&lt;br /&gt;
Вы также можете добавить дополнительный логгер для сбора только критических и аварийных уведомлений:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets critical and emergency log level messages to be sent to the file&lt;br /&gt;
        JLog::CRITICAL + JLog::EMERGENCY,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Вы также можете исключить определенный уровень приоритета от включения в файл логов. Например, чтобы логировать все сообщения кроме DEBUG:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.all_but_debug.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Уровни приоритета &amp;lt;tt&amp;gt;JLog&amp;lt;/tt&amp;gt; реализованы в виде отдельных битов целого числа, поэтому вы можете использовать &#039;&#039;&#039;побитовые&#039;&#039;&#039; операции  (побитовое AND, &amp;amp;; и побитовое NOT, ~) для вычисления подходящих уровней логов. &amp;lt;tt&amp;gt;JLog::All&amp;lt;/tt&amp;gt; является постоянным целым числом, в котором установлены все соответствующие биты, поэтому включены все уровни приоритета Joomla. &lt;br /&gt;
&lt;br /&gt;
== Форматирование файла лога ==&lt;br /&gt;
&lt;br /&gt;
Первый параметр &amp;lt;tt&amp;gt;addLogger&amp;lt;/tt&amp;gt; может иметь несколько необязательных дополнительных настроек в дополнение к записи &amp;lt;tt&amp;gt;text_file&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, есть параметр &amp;lt;tt&amp;gt;text_entry_format&amp;lt;/tt&amp;gt;, указывающая формат каждой строки в вашем лог файле.&lt;br /&gt;
&lt;br /&gt;
Формат по умолчанию:&lt;br /&gt;
&lt;br /&gt;
    &#039;{DATETIME} {PRIORITY}      {CATEGORY}      {MESSAGE}&#039;&lt;br /&gt;
&lt;br /&gt;
Вот пример другого формата, который показывает, как пропустить категорию:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;,&lt;br /&gt;
             // Sets the format of each line&lt;br /&gt;
             &#039;text_entry_format&#039; =&amp;gt; &#039;{DATETIME} {PRIORITY} {MESSAGE}&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Помимо заполнителей (placeholder), показанных выше в строке по умолчанию, доступны следующие значения:&lt;br /&gt;
&lt;br /&gt;
    {CLIENTIP}      (this is the IP address of the client)&lt;br /&gt;
    {TIME}&lt;br /&gt;
    {DATE}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Существует дополнительный необязательный логический параметр &amp;lt;tt&amp;gt;text_file_no_php&amp;lt;/tt&amp;gt;, который указывает, следует ли добавлять в файл логов обычный префикс:&lt;br /&gt;
&lt;br /&gt;
    #&lt;br /&gt;
    #&amp;lt;?php die(&#039;Forbidden.&#039;);?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Обычно вам не следует устанавливать для этого параметра значение &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;. Файлы логов не должны быть доступны для чтения извне, поскольку они могут предоставить злоумышленникам ценную информацию о вашей системе.&lt;br /&gt;
Изменяйте этот параметр, только если вы знаете, что делаете!&lt;br /&gt;
&lt;br /&gt;
Кроме того, если вы хотите сохранить файл логов где-то еще, а не по пути, указанному в общих настройках Joomla, вы можете изменить параметр &amp;lt;tt&amp;gt;text_file_path&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Логирование в другие места ==&lt;br /&gt;
&lt;br /&gt;
Помимо логирования в файлы, вы также можете логировать в другие места, такие как&lt;br /&gt;
* область сообщений Joomla (сообщение отображается, если вы вызываете &amp;lt;tt&amp;gt;JFactory::getApplication()-&amp;gt;enqueueMessage()&amp;lt;/tt&amp;gt;)&lt;br /&gt;
* таблица базы данных&lt;br /&gt;
* просто echo&lt;br /&gt;
Из них, пожалуй, наиболее полезным является логирование в панель сообщений, которое можно настроить следующим образом:&lt;br /&gt;
     JLog::addLogger(array(&#039;logger&#039; =&amp;gt; &#039;messagequeue&#039;), JLog::ALL, array(&#039;msg-error-cat&#039;));&lt;br /&gt;
Затем, когда вы делаете:&lt;br /&gt;
     JLog::add(&#039;сообщение об ошибке для отображения&#039;, JLog::ERROR, &#039;msg-error-cat&#039;);&lt;br /&gt;
вы получаете сообщение, скопированное на панель сообщений.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Обратите внимание, что код ядра Joomla настраивает запись в очередь сообщений для категории &#039;jerror&#039;, поэтому, если вы используете эту категорию в своих сообщениях журнала, вы получите сообщение, отображаемое на панели сообщений.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
     JLog::add (&#039;ошибка скопирована на панель сообщений&#039;, JLog::ERROR, &#039;jerror&#039;);&lt;br /&gt;
приведет к тому, что сообщение будет отображаться в области сообщений Joomla, даже если вы явно не настроили такое поведение для своего логгера.&lt;br /&gt;
&lt;br /&gt;
== Исключения ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;JLog::add()&amp;lt;/code&amp;gt; кидает исключение, если не может записать в файл логов. Чтобы избежать этого, вам придется либо обернуть вызов в другую функцию, либо реализовать свой собственный класс логгера, а затем включить его:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Use mycustomlogger&lt;br /&gt;
             &#039;logger&#039; =&amp;gt; &#039;mycustomlogger&#039;,&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.errors.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
== Что ещё почитать == &lt;br /&gt;
Логирование в Joomla должно использоваться в тандеме с исключениями PHP, а не в качестве замены. Подробнее в [[S:MyLanguage/Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1|Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]].&lt;br /&gt;
&lt;br /&gt;
Другое руководство (немного устаревшее, но все же полезное) находится по адресу [http://eddify.me/posts/logging-in-joomla-with-jlog.html Logging in Joomla with JLog].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 1.7{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 2.5{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.0{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.x{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/46/ru&amp;diff=587394</id>
		<title>Translations:Using JLog/46/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/46/ru&amp;diff=587394"/>
		<updated>2019-01-16T08:31:10Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Уровни приоритета &amp;lt;tt&amp;gt;JLog&amp;lt;/tt&amp;gt; реализованы в виде отдельных битов целого числа, поэтому вы можете использовать &#039;&#039;&#039;побитовые&#039;&#039;&#039; операции  (побитовое AND, &amp;amp;; и побитовое NOT, ~) для вычисления подходящих уровней логов. &amp;lt;tt&amp;gt;JLog::All&amp;lt;/tt&amp;gt; является постоянным целым числом, в котором установлены все соответствующие биты, поэтому включены все уровни приоритета Joomla.&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587393</id>
		<title>Using JLog/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587393"/>
		<updated>2019-01-16T08:28:16Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Обзор ==&lt;br /&gt;
Логирование в Joomla дает вам возможность логировать сообщения в файлы и на экран (в консоли отладки Joomla внизу веб-страницы), а основным классом Joomla, который для этого используется, является JLog. &lt;br /&gt;
&lt;br /&gt;
Логирование, в некоторой степени, может контролироваться динамически через общие настройки Joomla и путем настройки плагина «Система - Отладка» (поставляется с Joomla). В целом эти возможности позволяют вам:&lt;br /&gt;
* включать или отключать систему отладки - чтобы вы не потребляли ресурсы без необходимости, но при этом у вас оставалась информация для того, чтобы помочь в устранении неполадок, когда есть проблемы. Например, на живом сайте, на котором установлено ваше расширение.&lt;br /&gt;
* направлять сообщения логов в определенный файл логов вашего собственного расширения&lt;br /&gt;
* просматривать сообщения логов в консоли отладки - вы можете выбрать группу пользователей, для которых должны отображаться сообщения логов, чтобы на живом сайте разработчики могли видеть сообщения, в то время как другие пользователи не затрагивались.&lt;br /&gt;
* фильтровать сообщения консоли отладки по приоритету (например, INFO, DEBUG, WARNING и т. д.) и по категориям (вы можете сами определять свои категории).&lt;br /&gt;
Кроме того, сообщения логов могут быть переведены на разные языки. &lt;br /&gt;
&lt;br /&gt;
Основные параметры конфигурации, относящиеся к ведению логов, показаны ниже.&lt;br /&gt;
&lt;br /&gt;
Включение отладки и отображение консоли отладки Joomla контролируется через общие настройки.&lt;br /&gt;
[[File:Global conf debug-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Логирование в общий файл логов контролируется с помощью вкладки Журнал (логи) конфигурации плагина Joomla «Система - Отладка» (в меню администратора нажмите «Расширения / Плагины», найдите плагин «Система - Отладка» и нажмите на него, чтобы изменить его параметры). &lt;br /&gt;
[[File:Debug logging settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Параметры на вкладке &amp;quot;Плагин&amp;quot; контролируют отображение в консоли отладки Joomla.&lt;br /&gt;
[[File:Debug plugin settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Базовое логирование в файл ==&lt;br /&gt;
&lt;br /&gt;
Чтобы отправить сообщение в лог, используйте функцию &amp;lt;tt&amp;gt;JLog::add()&amp;lt;/tt&amp;gt;. Например:&lt;br /&gt;
&lt;br /&gt;
    JLog::add(&#039;my error message&#039;, JLog::ERROR, &#039;my-error-category&#039;);&lt;br /&gt;
&lt;br /&gt;
Параметры&lt;br /&gt;
# Строка сообщения. Вы можете использовать перевод, например, &amp;lt;tt&amp;gt;JText::_(&#039;MY_EXTENSION_ERR_MSG&#039;)&amp;lt;/tt&amp;gt;. Вы также можете отображать значения переменных при условии, что вы конвертируете их в строковый формат (например, с помощью &amp;lt;tt&amp;gt;__toString ()&amp;lt;/tt&amp;gt;, если тип переменной это поддерживает). &lt;br /&gt;
# Приоритет, который может быть одним из: JLog::EMERGENCY, JLog::ALERT, JLog::CRITICAL, JLog::ERROR, JLog::WARNING, JLog::NOTICE, JLog::INFO, JLog::DEBUG (основано на уровнях серьёзности syslog / RFC 5424 – подробнее в [https://ru.wikipedia.org/wiki/Syslog материале Wikipedia о syslog]).&lt;br /&gt;
# Категория, которая является просто текстовой строкой. Вы можете определить любые категории, которые вам нравятся. Лучше всего определять их, чтобы избежать возможных конфликтов с другими расширениями. &lt;br /&gt;
&lt;br /&gt;
Если вы включите диагностические сообщения отладки в ваше расширение, то это может быть очень полезно при устранении неполадок. В этом случае добавьте к своему лог сообщению проверку на JDEBUG:&lt;br /&gt;
&lt;br /&gt;
    if (JDEBUG) &lt;br /&gt;
    {&lt;br /&gt;
        JLog::add(&#039;my debug message&#039;, JLog::DEBUG, &#039;my-debug-category&#039;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
== Логирование в определённый файл лога == &lt;br /&gt;
Вы можете использовать &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;, чтобы настроить ведение логов в дополнительный файл логов, отфильтровывая сообщения логов по приоритету (уровень серьезности) и / или категории. Параметры &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
# массив с деталями конфигурации - включая имя файла логов&lt;br /&gt;
# уровни серьезности, которые будут логироваться в этом файле&lt;br /&gt;
# массив категорий, которые будут логироваться в этом файле (или если для параметра 4 установлено значение &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;, тогда этот массив определяет категории, которые НЕ должны регистрироваться в файле)&lt;br /&gt;
# (часто пропускается) логическое значение, указывающее, является ли параметр 3 списком включения (по умолчанию P4 = &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;) или списком исключения (P4 = &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Например, если вы разработали расширение &#039;com_helloworld&#039;, вы можете использовать следующее:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.log.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets messages of all log levels to be sent to the file&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
            // The log category/categories which should be recorded in this file&lt;br /&gt;
            // In this case, it&#039;s just the one category from our extension, still&lt;br /&gt;
            // we need to put it inside an array&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Затем, когда вы логируете сообщение, укажите категорию &#039;com_helloworld&#039;, как в примере ниже&lt;br /&gt;
&lt;br /&gt;
    JLog::add(JText::_(&#039;COM_HELLOWORLD_ERROR_MESSAGE_123&#039;), JLog::ERROR, &#039;com_helloworld&#039;);&lt;br /&gt;
&lt;br /&gt;
Это приведет к тому, что ваше сообщение будет записано в com_helloworld.log.php. Если в настройках плагина «Система - Отладка» для параметра «Протоколировать все» задано значение «Да», то это сообщение появится и в общем файле журнала everything.php.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Вы можете объединить это с [[S:MyLanguage/Display error messages and notices|Display error messages and notices]] для отображения видимых уведомлений об ошибках для пользователей.&lt;br /&gt;
&lt;br /&gt;
Вы также можете добавить дополнительный логгер для сбора только критических и аварийных уведомлений:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets critical and emergency log level messages to be sent to the file&lt;br /&gt;
        JLog::CRITICAL + JLog::EMERGENCY,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Вы также можете исключить определенный уровень приоритета от включения в файл логов. Например, чтобы логировать все сообщения кроме DEBUG:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.all_but_debug.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Уровни приоритета &amp;lt;tt&amp;gt;JLog&amp;lt;/tt&amp;gt; реализованы в виде отдельных битов целого числа, поэтому вы можете использовать &#039;&#039;&#039;побитовые&#039;&#039;&#039; операции  (побитовое AND, &amp;amp;; и побитовое NOT, ~) для вычисления подходящих уровней логов. &amp;lt;tt&amp;gt;JLog::All&amp;lt;/tt&amp;gt; является постоянным целым числом, в котором установлены все соответствующие биты, так что включены все уровни приоритета Joomla. &lt;br /&gt;
&lt;br /&gt;
== Форматирование файла лога ==&lt;br /&gt;
&lt;br /&gt;
Первый параметр &amp;lt;tt&amp;gt;addLogger&amp;lt;/tt&amp;gt; может иметь несколько необязательных дополнительных настроек в дополнение к записи &amp;lt;tt&amp;gt;text_file&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, есть параметр &amp;lt;tt&amp;gt;text_entry_format&amp;lt;/tt&amp;gt;, указывающая формат каждой строки в вашем лог файле.&lt;br /&gt;
&lt;br /&gt;
Формат по умолчанию:&lt;br /&gt;
&lt;br /&gt;
    &#039;{DATETIME} {PRIORITY}      {CATEGORY}      {MESSAGE}&#039;&lt;br /&gt;
&lt;br /&gt;
Вот пример другого формата, который показывает, как пропустить категорию:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;,&lt;br /&gt;
             // Sets the format of each line&lt;br /&gt;
             &#039;text_entry_format&#039; =&amp;gt; &#039;{DATETIME} {PRIORITY} {MESSAGE}&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Помимо заполнителей (placeholder), показанных выше в строке по умолчанию, доступны следующие значения:&lt;br /&gt;
&lt;br /&gt;
    {CLIENTIP}      (this is the IP address of the client)&lt;br /&gt;
    {TIME}&lt;br /&gt;
    {DATE}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Существует дополнительный необязательный логический параметр &amp;lt;tt&amp;gt;text_file_no_php&amp;lt;/tt&amp;gt;, который указывает, следует ли добавлять в файл логов обычный префикс:&lt;br /&gt;
&lt;br /&gt;
    #&lt;br /&gt;
    #&amp;lt;?php die(&#039;Forbidden.&#039;);?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Обычно вам не следует устанавливать для этого параметра значение &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;. Файлы логов не должны быть доступны для чтения извне, поскольку они могут предоставить злоумышленникам ценную информацию о вашей системе.&lt;br /&gt;
Изменяйте этот параметр, только если вы знаете, что делаете!&lt;br /&gt;
&lt;br /&gt;
Кроме того, если вы хотите сохранить файл логов где-то еще, а не по пути, указанному в общих настройках Joomla, вы можете изменить параметр &amp;lt;tt&amp;gt;text_file_path&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Логирование в другие места ==&lt;br /&gt;
&lt;br /&gt;
Помимо логирования в файлы, вы также можете логировать в другие места, такие как&lt;br /&gt;
* область сообщений Joomla (сообщение отображается, если вы вызываете &amp;lt;tt&amp;gt;JFactory::getApplication()-&amp;gt;enqueueMessage()&amp;lt;/tt&amp;gt;)&lt;br /&gt;
* таблица базы данных&lt;br /&gt;
* просто echo&lt;br /&gt;
Из них, пожалуй, наиболее полезным является логирование в панель сообщений, которое можно настроить следующим образом:&lt;br /&gt;
     JLog::addLogger(array(&#039;logger&#039; =&amp;gt; &#039;messagequeue&#039;), JLog::ALL, array(&#039;msg-error-cat&#039;));&lt;br /&gt;
Затем, когда вы делаете:&lt;br /&gt;
     JLog::add(&#039;сообщение об ошибке для отображения&#039;, JLog::ERROR, &#039;msg-error-cat&#039;);&lt;br /&gt;
вы получаете сообщение, скопированное на панель сообщений.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Обратите внимание, что код ядра Joomla настраивает запись в очередь сообщений для категории &#039;jerror&#039;, поэтому, если вы используете эту категорию в своих сообщениях журнала, вы получите сообщение, отображаемое на панели сообщений.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
     JLog::add (&#039;ошибка скопирована на панель сообщений&#039;, JLog::ERROR, &#039;jerror&#039;);&lt;br /&gt;
приведет к тому, что сообщение будет отображаться в области сообщений Joomla, даже если вы явно не настроили такое поведение для своего логгера.&lt;br /&gt;
&lt;br /&gt;
== Исключения ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;JLog::add()&amp;lt;/code&amp;gt; кидает исключение, если не может записать в файл логов. Чтобы избежать этого, вам придется либо обернуть вызов в другую функцию, либо реализовать свой собственный класс логгера, а затем включить его:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Use mycustomlogger&lt;br /&gt;
             &#039;logger&#039; =&amp;gt; &#039;mycustomlogger&#039;,&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.errors.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
== Что ещё почитать == &lt;br /&gt;
Логирование в Joomla должно использоваться в тандеме с исключениями PHP, а не в качестве замены. Подробнее в [[S:MyLanguage/Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1|Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]].&lt;br /&gt;
&lt;br /&gt;
Другое руководство (немного устаревшее, но все же полезное) находится по адресу [http://eddify.me/posts/logging-in-joomla-with-jlog.html Logging in Joomla with JLog].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 1.7{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 2.5{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.0{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.x{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/38/ru&amp;diff=587392</id>
		<title>Translations:Using JLog/38/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/38/ru&amp;diff=587392"/>
		<updated>2019-01-16T08:28:16Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Параметры&lt;br /&gt;
# Строка сообщения. Вы можете использовать перевод, например, &amp;lt;tt&amp;gt;JText::_(&#039;MY_EXTENSION_ERR_MSG&#039;)&amp;lt;/tt&amp;gt;. Вы также можете отображать значения переменных при условии, что вы конвертируете их в строковый формат (например, с помощью &amp;lt;tt&amp;gt;__toString ()&amp;lt;/tt&amp;gt;, если тип переменной это поддерживает). &lt;br /&gt;
# Приоритет, который может быть одним из: JLog::EMERGENCY, JLog::ALERT, JLog::CRITICAL, JLog::ERROR, JLog::WARNING, JLog::NOTICE, JLog::INFO, JLog::DEBUG (основано на уровнях серьёзности syslog / RFC 5424 – подробнее в [https://ru.wikipedia.org/wiki/Syslog материале Wikipedia о syslog]).&lt;br /&gt;
# Категория, которая является просто текстовой строкой. Вы можете определить любые категории, которые вам нравятся. Лучше всего определять их, чтобы избежать возможных конфликтов с другими расширениями.&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587391</id>
		<title>Using JLog/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587391"/>
		<updated>2019-01-16T08:27:31Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Обзор ==&lt;br /&gt;
Логирование в Joomla дает вам возможность логировать сообщения в файлы и на экран (в консоли отладки Joomla внизу веб-страницы), а основным классом Joomla, который для этого используется, является JLog. &lt;br /&gt;
&lt;br /&gt;
Логирование, в некоторой степени, может контролироваться динамически через общие настройки Joomla и путем настройки плагина «Система - Отладка» (поставляется с Joomla). В целом эти возможности позволяют вам:&lt;br /&gt;
* включать или отключать систему отладки - чтобы вы не потребляли ресурсы без необходимости, но при этом у вас оставалась информация для того, чтобы помочь в устранении неполадок, когда есть проблемы. Например, на живом сайте, на котором установлено ваше расширение.&lt;br /&gt;
* направлять сообщения логов в определенный файл логов вашего собственного расширения&lt;br /&gt;
* просматривать сообщения логов в консоли отладки - вы можете выбрать группу пользователей, для которых должны отображаться сообщения логов, чтобы на живом сайте разработчики могли видеть сообщения, в то время как другие пользователи не затрагивались.&lt;br /&gt;
* фильтровать сообщения консоли отладки по приоритету (например, INFO, DEBUG, WARNING и т. д.) и по категориям (вы можете сами определять свои категории).&lt;br /&gt;
Кроме того, сообщения логов могут быть переведены на разные языки. &lt;br /&gt;
&lt;br /&gt;
Основные параметры конфигурации, относящиеся к ведению логов, показаны ниже.&lt;br /&gt;
&lt;br /&gt;
Включение отладки и отображение консоли отладки Joomla контролируется через общие настройки.&lt;br /&gt;
[[File:Global conf debug-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Логирование в общий файл логов контролируется с помощью вкладки Журнал (логи) конфигурации плагина Joomla «Система - Отладка» (в меню администратора нажмите «Расширения / Плагины», найдите плагин «Система - Отладка» и нажмите на него, чтобы изменить его параметры). &lt;br /&gt;
[[File:Debug logging settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Параметры на вкладке &amp;quot;Плагин&amp;quot; контролируют отображение в консоли отладки Joomla.&lt;br /&gt;
[[File:Debug plugin settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Базовое логирование в файл ==&lt;br /&gt;
&lt;br /&gt;
Чтобы отправить сообщение в лог, используйте функцию &amp;lt;tt&amp;gt;JLog::add()&amp;lt;/tt&amp;gt;. Например:&lt;br /&gt;
&lt;br /&gt;
    JLog::add(&#039;my error message&#039;, JLog::ERROR, &#039;my-error-category&#039;);&lt;br /&gt;
&lt;br /&gt;
Параметры&lt;br /&gt;
# Строка сообщения. Вы можете использовать перевод, например, &amp;lt;tt&amp;gt;JText::_(&#039;MY_EXTENSION_ERR_MSG&#039;)&amp;lt;/tt&amp;gt;. Вы также можете отображать значения переменных при условии, что вы конвертируете их в строковый формат (например, с помощью &amp;lt;tt&amp;gt;__toString ()&amp;lt;/tt&amp;gt;, если тип переменной это поддерживает). &lt;br /&gt;
# Приоритет, который может быть одним из: JLog::EMERGENCY, JLog::ALERT, JLog::CRITICAL, JLog::ERROR, JLog::WARNING, JLog::NOTICE, JLog::INFO, JLog::DEBUG (основано на уровнях серьёзности syslog / RFC 5424 – подробнее в [https://ru.wikipedia.org/wiki/Syslog материале Wikipedia о syslog]).&lt;br /&gt;
# Категория, которая является просто текстовой строкой. Вы можете определить любые категории, которые вам нравятся, и лучше всего определять их, чтобы избежать возможных конфликтов с другими расширениями. &lt;br /&gt;
&lt;br /&gt;
Если вы включите диагностические сообщения отладки в ваше расширение, то это может быть очень полезно при устранении неполадок. В этом случае добавьте к своему лог сообщению проверку на JDEBUG:&lt;br /&gt;
&lt;br /&gt;
    if (JDEBUG) &lt;br /&gt;
    {&lt;br /&gt;
        JLog::add(&#039;my debug message&#039;, JLog::DEBUG, &#039;my-debug-category&#039;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
== Логирование в определённый файл лога == &lt;br /&gt;
Вы можете использовать &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;, чтобы настроить ведение логов в дополнительный файл логов, отфильтровывая сообщения логов по приоритету (уровень серьезности) и / или категории. Параметры &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
# массив с деталями конфигурации - включая имя файла логов&lt;br /&gt;
# уровни серьезности, которые будут логироваться в этом файле&lt;br /&gt;
# массив категорий, которые будут логироваться в этом файле (или если для параметра 4 установлено значение &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;, тогда этот массив определяет категории, которые НЕ должны регистрироваться в файле)&lt;br /&gt;
# (часто пропускается) логическое значение, указывающее, является ли параметр 3 списком включения (по умолчанию P4 = &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;) или списком исключения (P4 = &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Например, если вы разработали расширение &#039;com_helloworld&#039;, вы можете использовать следующее:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.log.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets messages of all log levels to be sent to the file&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
            // The log category/categories which should be recorded in this file&lt;br /&gt;
            // In this case, it&#039;s just the one category from our extension, still&lt;br /&gt;
            // we need to put it inside an array&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Затем, когда вы логируете сообщение, укажите категорию &#039;com_helloworld&#039;, как в примере ниже&lt;br /&gt;
&lt;br /&gt;
    JLog::add(JText::_(&#039;COM_HELLOWORLD_ERROR_MESSAGE_123&#039;), JLog::ERROR, &#039;com_helloworld&#039;);&lt;br /&gt;
&lt;br /&gt;
Это приведет к тому, что ваше сообщение будет записано в com_helloworld.log.php. Если в настройках плагина «Система - Отладка» для параметра «Протоколировать все» задано значение «Да», то это сообщение появится и в общем файле журнала everything.php.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Вы можете объединить это с [[S:MyLanguage/Display error messages and notices|Display error messages and notices]] для отображения видимых уведомлений об ошибках для пользователей.&lt;br /&gt;
&lt;br /&gt;
Вы также можете добавить дополнительный логгер для сбора только критических и аварийных уведомлений:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets critical and emergency log level messages to be sent to the file&lt;br /&gt;
        JLog::CRITICAL + JLog::EMERGENCY,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Вы также можете исключить определенный уровень приоритета от включения в файл логов. Например, чтобы логировать все сообщения кроме DEBUG:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.all_but_debug.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Уровни приоритета &amp;lt;tt&amp;gt;JLog&amp;lt;/tt&amp;gt; реализованы в виде отдельных битов целого числа, поэтому вы можете использовать &#039;&#039;&#039;побитовые&#039;&#039;&#039; операции  (побитовое AND, &amp;amp;; и побитовое NOT, ~) для вычисления подходящих уровней логов. &amp;lt;tt&amp;gt;JLog::All&amp;lt;/tt&amp;gt; является постоянным целым числом, в котором установлены все соответствующие биты, так что включены все уровни приоритета Joomla. &lt;br /&gt;
&lt;br /&gt;
== Форматирование файла лога ==&lt;br /&gt;
&lt;br /&gt;
Первый параметр &amp;lt;tt&amp;gt;addLogger&amp;lt;/tt&amp;gt; может иметь несколько необязательных дополнительных настроек в дополнение к записи &amp;lt;tt&amp;gt;text_file&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, есть параметр &amp;lt;tt&amp;gt;text_entry_format&amp;lt;/tt&amp;gt;, указывающая формат каждой строки в вашем лог файле.&lt;br /&gt;
&lt;br /&gt;
Формат по умолчанию:&lt;br /&gt;
&lt;br /&gt;
    &#039;{DATETIME} {PRIORITY}      {CATEGORY}      {MESSAGE}&#039;&lt;br /&gt;
&lt;br /&gt;
Вот пример другого формата, который показывает, как пропустить категорию:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;,&lt;br /&gt;
             // Sets the format of each line&lt;br /&gt;
             &#039;text_entry_format&#039; =&amp;gt; &#039;{DATETIME} {PRIORITY} {MESSAGE}&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Помимо заполнителей (placeholder), показанных выше в строке по умолчанию, доступны следующие значения:&lt;br /&gt;
&lt;br /&gt;
    {CLIENTIP}      (this is the IP address of the client)&lt;br /&gt;
    {TIME}&lt;br /&gt;
    {DATE}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Существует дополнительный необязательный логический параметр &amp;lt;tt&amp;gt;text_file_no_php&amp;lt;/tt&amp;gt;, который указывает, следует ли добавлять в файл логов обычный префикс:&lt;br /&gt;
&lt;br /&gt;
    #&lt;br /&gt;
    #&amp;lt;?php die(&#039;Forbidden.&#039;);?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Обычно вам не следует устанавливать для этого параметра значение &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;. Файлы логов не должны быть доступны для чтения извне, поскольку они могут предоставить злоумышленникам ценную информацию о вашей системе.&lt;br /&gt;
Изменяйте этот параметр, только если вы знаете, что делаете!&lt;br /&gt;
&lt;br /&gt;
Кроме того, если вы хотите сохранить файл логов где-то еще, а не по пути, указанному в общих настройках Joomla, вы можете изменить параметр &amp;lt;tt&amp;gt;text_file_path&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Логирование в другие места ==&lt;br /&gt;
&lt;br /&gt;
Помимо логирования в файлы, вы также можете логировать в другие места, такие как&lt;br /&gt;
* область сообщений Joomla (сообщение отображается, если вы вызываете &amp;lt;tt&amp;gt;JFactory::getApplication()-&amp;gt;enqueueMessage()&amp;lt;/tt&amp;gt;)&lt;br /&gt;
* таблица базы данных&lt;br /&gt;
* просто echo&lt;br /&gt;
Из них, пожалуй, наиболее полезным является логирование в панель сообщений, которое можно настроить следующим образом:&lt;br /&gt;
     JLog::addLogger(array(&#039;logger&#039; =&amp;gt; &#039;messagequeue&#039;), JLog::ALL, array(&#039;msg-error-cat&#039;));&lt;br /&gt;
Затем, когда вы делаете:&lt;br /&gt;
     JLog::add(&#039;сообщение об ошибке для отображения&#039;, JLog::ERROR, &#039;msg-error-cat&#039;);&lt;br /&gt;
вы получаете сообщение, скопированное на панель сообщений.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Обратите внимание, что код ядра Joomla настраивает запись в очередь сообщений для категории &#039;jerror&#039;, поэтому, если вы используете эту категорию в своих сообщениях журнала, вы получите сообщение, отображаемое на панели сообщений.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
     JLog::add (&#039;ошибка скопирована на панель сообщений&#039;, JLog::ERROR, &#039;jerror&#039;);&lt;br /&gt;
приведет к тому, что сообщение будет отображаться в области сообщений Joomla, даже если вы явно не настроили такое поведение для своего логгера.&lt;br /&gt;
&lt;br /&gt;
== Исключения ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;JLog::add()&amp;lt;/code&amp;gt; кидает исключение, если не может записать в файл логов. Чтобы избежать этого, вам придется либо обернуть вызов в другую функцию, либо реализовать свой собственный класс логгера, а затем включить его:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Use mycustomlogger&lt;br /&gt;
             &#039;logger&#039; =&amp;gt; &#039;mycustomlogger&#039;,&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.errors.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
== Что ещё почитать == &lt;br /&gt;
Логирование в Joomla должно использоваться в тандеме с исключениями PHP, а не в качестве замены. Подробнее в [[S:MyLanguage/Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1|Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]].&lt;br /&gt;
&lt;br /&gt;
Другое руководство (немного устаревшее, но все же полезное) находится по адресу [http://eddify.me/posts/logging-in-joomla-with-jlog.html Logging in Joomla with JLog].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 1.7{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 2.5{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.0{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.x{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/38/ru&amp;diff=587390</id>
		<title>Translations:Using JLog/38/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/38/ru&amp;diff=587390"/>
		<updated>2019-01-16T08:27:31Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Параметры&lt;br /&gt;
# Строка сообщения. Вы можете использовать перевод, например, &amp;lt;tt&amp;gt;JText::_(&#039;MY_EXTENSION_ERR_MSG&#039;)&amp;lt;/tt&amp;gt;. Вы также можете отображать значения переменных при условии, что вы конвертируете их в строковый формат (например, с помощью &amp;lt;tt&amp;gt;__toString ()&amp;lt;/tt&amp;gt;, если тип переменной это поддерживает). &lt;br /&gt;
# Приоритет, который может быть одним из: JLog::EMERGENCY, JLog::ALERT, JLog::CRITICAL, JLog::ERROR, JLog::WARNING, JLog::NOTICE, JLog::INFO, JLog::DEBUG (основано на уровнях серьёзности syslog / RFC 5424 – подробнее в [https://ru.wikipedia.org/wiki/Syslog материале Wikipedia о syslog]).&lt;br /&gt;
# Категория, которая является просто текстовой строкой. Вы можете определить любые категории, которые вам нравятся, и лучше всего определять их, чтобы избежать возможных конфликтов с другими расширениями.&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587389</id>
		<title>Using JLog/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587389"/>
		<updated>2019-01-16T08:26:40Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Обзор ==&lt;br /&gt;
Логирование в Joomla дает вам возможность логировать сообщения в файлы и на экран (в консоли отладки Joomla внизу веб-страницы), а основным классом Joomla, который для этого используется, является JLog. &lt;br /&gt;
&lt;br /&gt;
Логирование, в некоторой степени, может контролироваться динамически через общие настройки Joomla и путем настройки плагина «Система - Отладка» (поставляется с Joomla). В целом эти возможности позволяют вам:&lt;br /&gt;
* включать или отключать систему отладки - чтобы вы не потребляли ресурсы без необходимости, но при этом у вас оставалась информация для того, чтобы помочь в устранении неполадок, когда есть проблемы. Например, на живом сайте, на котором установлено ваше расширение.&lt;br /&gt;
* направлять сообщения логов в определенный файл логов вашего собственного расширения&lt;br /&gt;
* просматривать сообщения логов в консоли отладки - вы можете выбрать группу пользователей, для которых должны отображаться сообщения логов, чтобы на живом сайте разработчики могли видеть сообщения, в то время как другие пользователи не затрагивались.&lt;br /&gt;
* фильтровать сообщения консоли отладки по приоритету (например, INFO, DEBUG, WARNING и т. д.) и по категориям (вы можете сами определять свои категории).&lt;br /&gt;
Кроме того, сообщения логов могут быть переведены на разные языки. &lt;br /&gt;
&lt;br /&gt;
Основные параметры конфигурации, относящиеся к ведению логов, показаны ниже.&lt;br /&gt;
&lt;br /&gt;
Включение отладки и отображение консоли отладки Joomla контролируется через общие настройки.&lt;br /&gt;
[[File:Global conf debug-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Логирование в общий файл логов контролируется с помощью вкладки Журнал (логи) конфигурации плагина Joomla «Система - Отладка» (в меню администратора нажмите «Расширения / Плагины», найдите плагин «Система - Отладка» и нажмите на него, чтобы изменить его параметры). &lt;br /&gt;
[[File:Debug logging settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Параметры на вкладке &amp;quot;Плагин&amp;quot; контролируют отображение в консоли отладки Joomla.&lt;br /&gt;
[[File:Debug plugin settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Базовое логирование в файл ==&lt;br /&gt;
&lt;br /&gt;
Чтобы отправить сообщение в лог, используйте функцию &amp;lt;tt&amp;gt;JLog::add()&amp;lt;/tt&amp;gt;. Например:&lt;br /&gt;
&lt;br /&gt;
    JLog::add(&#039;my error message&#039;, JLog::ERROR, &#039;my-error-category&#039;);&lt;br /&gt;
&lt;br /&gt;
Параметры&lt;br /&gt;
# Строка сообщения. Вы можете использовать перевод, например, &amp;lt;tt&amp;gt;JText::_(&#039;MY_EXTENSION_ERR_MSG&#039;)&amp;lt;/tt&amp;gt;. Вы также можете отображать значения переменных при условии, что вы конвертируете их в строковый формат (например, с помощью &amp;lt;tt&amp;gt;__toString ()&amp;lt;/tt&amp;gt;, если тип переменной это поддерживает). &lt;br /&gt;
# Приоритет, который может быть одним из: JLog::EMERGENCY, JLog::ALERT, JLog::CRITICAL, JLog::ERROR, JLog::WARNING, JLog::NOTICE, JLog::INFO, JLog::DEBUG (основано на уровнях серьёзности syslog / RFC 5424 – подробнее на [https://ru.wikipedia.org/wiki/Syslog материал Wikipedia о syslog]).&lt;br /&gt;
# Категория, которая является просто текстовой строкой. Вы можете определить любые категории, которые вам нравятся, и лучше всего определять их, чтобы избежать возможных конфликтов с другими расширениями. &lt;br /&gt;
&lt;br /&gt;
Если вы включите диагностические сообщения отладки в ваше расширение, то это может быть очень полезно при устранении неполадок. В этом случае добавьте к своему лог сообщению проверку на JDEBUG:&lt;br /&gt;
&lt;br /&gt;
    if (JDEBUG) &lt;br /&gt;
    {&lt;br /&gt;
        JLog::add(&#039;my debug message&#039;, JLog::DEBUG, &#039;my-debug-category&#039;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
== Логирование в определённый файл лога == &lt;br /&gt;
Вы можете использовать &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;, чтобы настроить ведение логов в дополнительный файл логов, отфильтровывая сообщения логов по приоритету (уровень серьезности) и / или категории. Параметры &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
# массив с деталями конфигурации - включая имя файла логов&lt;br /&gt;
# уровни серьезности, которые будут логироваться в этом файле&lt;br /&gt;
# массив категорий, которые будут логироваться в этом файле (или если для параметра 4 установлено значение &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;, тогда этот массив определяет категории, которые НЕ должны регистрироваться в файле)&lt;br /&gt;
# (часто пропускается) логическое значение, указывающее, является ли параметр 3 списком включения (по умолчанию P4 = &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;) или списком исключения (P4 = &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Например, если вы разработали расширение &#039;com_helloworld&#039;, вы можете использовать следующее:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.log.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets messages of all log levels to be sent to the file&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
            // The log category/categories which should be recorded in this file&lt;br /&gt;
            // In this case, it&#039;s just the one category from our extension, still&lt;br /&gt;
            // we need to put it inside an array&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Затем, когда вы логируете сообщение, укажите категорию &#039;com_helloworld&#039;, как в примере ниже&lt;br /&gt;
&lt;br /&gt;
    JLog::add(JText::_(&#039;COM_HELLOWORLD_ERROR_MESSAGE_123&#039;), JLog::ERROR, &#039;com_helloworld&#039;);&lt;br /&gt;
&lt;br /&gt;
Это приведет к тому, что ваше сообщение будет записано в com_helloworld.log.php. Если в настройках плагина «Система - Отладка» для параметра «Протоколировать все» задано значение «Да», то это сообщение появится и в общем файле журнала everything.php.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Вы можете объединить это с [[S:MyLanguage/Display error messages and notices|Display error messages and notices]] для отображения видимых уведомлений об ошибках для пользователей.&lt;br /&gt;
&lt;br /&gt;
Вы также можете добавить дополнительный логгер для сбора только критических и аварийных уведомлений:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets critical and emergency log level messages to be sent to the file&lt;br /&gt;
        JLog::CRITICAL + JLog::EMERGENCY,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Вы также можете исключить определенный уровень приоритета от включения в файл логов. Например, чтобы логировать все сообщения кроме DEBUG:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.all_but_debug.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Уровни приоритета &amp;lt;tt&amp;gt;JLog&amp;lt;/tt&amp;gt; реализованы в виде отдельных битов целого числа, поэтому вы можете использовать &#039;&#039;&#039;побитовые&#039;&#039;&#039; операции  (побитовое AND, &amp;amp;; и побитовое NOT, ~) для вычисления подходящих уровней логов. &amp;lt;tt&amp;gt;JLog::All&amp;lt;/tt&amp;gt; является постоянным целым числом, в котором установлены все соответствующие биты, так что включены все уровни приоритета Joomla. &lt;br /&gt;
&lt;br /&gt;
== Форматирование файла лога ==&lt;br /&gt;
&lt;br /&gt;
Первый параметр &amp;lt;tt&amp;gt;addLogger&amp;lt;/tt&amp;gt; может иметь несколько необязательных дополнительных настроек в дополнение к записи &amp;lt;tt&amp;gt;text_file&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, есть параметр &amp;lt;tt&amp;gt;text_entry_format&amp;lt;/tt&amp;gt;, указывающая формат каждой строки в вашем лог файле.&lt;br /&gt;
&lt;br /&gt;
Формат по умолчанию:&lt;br /&gt;
&lt;br /&gt;
    &#039;{DATETIME} {PRIORITY}      {CATEGORY}      {MESSAGE}&#039;&lt;br /&gt;
&lt;br /&gt;
Вот пример другого формата, который показывает, как пропустить категорию:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;,&lt;br /&gt;
             // Sets the format of each line&lt;br /&gt;
             &#039;text_entry_format&#039; =&amp;gt; &#039;{DATETIME} {PRIORITY} {MESSAGE}&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Помимо заполнителей (placeholder), показанных выше в строке по умолчанию, доступны следующие значения:&lt;br /&gt;
&lt;br /&gt;
    {CLIENTIP}      (this is the IP address of the client)&lt;br /&gt;
    {TIME}&lt;br /&gt;
    {DATE}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Существует дополнительный необязательный логический параметр &amp;lt;tt&amp;gt;text_file_no_php&amp;lt;/tt&amp;gt;, который указывает, следует ли добавлять в файл логов обычный префикс:&lt;br /&gt;
&lt;br /&gt;
    #&lt;br /&gt;
    #&amp;lt;?php die(&#039;Forbidden.&#039;);?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Обычно вам не следует устанавливать для этого параметра значение &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;. Файлы логов не должны быть доступны для чтения извне, поскольку они могут предоставить злоумышленникам ценную информацию о вашей системе.&lt;br /&gt;
Изменяйте этот параметр, только если вы знаете, что делаете!&lt;br /&gt;
&lt;br /&gt;
Кроме того, если вы хотите сохранить файл логов где-то еще, а не по пути, указанному в общих настройках Joomla, вы можете изменить параметр &amp;lt;tt&amp;gt;text_file_path&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Логирование в другие места ==&lt;br /&gt;
&lt;br /&gt;
Помимо логирования в файлы, вы также можете логировать в другие места, такие как&lt;br /&gt;
* область сообщений Joomla (сообщение отображается, если вы вызываете &amp;lt;tt&amp;gt;JFactory::getApplication()-&amp;gt;enqueueMessage()&amp;lt;/tt&amp;gt;)&lt;br /&gt;
* таблица базы данных&lt;br /&gt;
* просто echo&lt;br /&gt;
Из них, пожалуй, наиболее полезным является логирование в панель сообщений, которое можно настроить следующим образом:&lt;br /&gt;
     JLog::addLogger(array(&#039;logger&#039; =&amp;gt; &#039;messagequeue&#039;), JLog::ALL, array(&#039;msg-error-cat&#039;));&lt;br /&gt;
Затем, когда вы делаете:&lt;br /&gt;
     JLog::add(&#039;сообщение об ошибке для отображения&#039;, JLog::ERROR, &#039;msg-error-cat&#039;);&lt;br /&gt;
вы получаете сообщение, скопированное на панель сообщений.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Обратите внимание, что код ядра Joomla настраивает запись в очередь сообщений для категории &#039;jerror&#039;, поэтому, если вы используете эту категорию в своих сообщениях журнала, вы получите сообщение, отображаемое на панели сообщений.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
     JLog::add (&#039;ошибка скопирована на панель сообщений&#039;, JLog::ERROR, &#039;jerror&#039;);&lt;br /&gt;
приведет к тому, что сообщение будет отображаться в области сообщений Joomla, даже если вы явно не настроили такое поведение для своего логгера.&lt;br /&gt;
&lt;br /&gt;
== Исключения ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;JLog::add()&amp;lt;/code&amp;gt; кидает исключение, если не может записать в файл логов. Чтобы избежать этого, вам придется либо обернуть вызов в другую функцию, либо реализовать свой собственный класс логгера, а затем включить его:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Use mycustomlogger&lt;br /&gt;
             &#039;logger&#039; =&amp;gt; &#039;mycustomlogger&#039;,&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.errors.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
== Что ещё почитать == &lt;br /&gt;
Логирование в Joomla должно использоваться в тандеме с исключениями PHP, а не в качестве замены. Подробнее в [[S:MyLanguage/Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1|Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]].&lt;br /&gt;
&lt;br /&gt;
Другое руководство (немного устаревшее, но все же полезное) находится по адресу [http://eddify.me/posts/logging-in-joomla-with-jlog.html Logging in Joomla with JLog].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 1.7{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 2.5{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.0{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.x{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/38/ru&amp;diff=587388</id>
		<title>Translations:Using JLog/38/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/38/ru&amp;diff=587388"/>
		<updated>2019-01-16T08:26:40Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Параметры&lt;br /&gt;
# Строка сообщения. Вы можете использовать перевод, например, &amp;lt;tt&amp;gt;JText::_(&#039;MY_EXTENSION_ERR_MSG&#039;)&amp;lt;/tt&amp;gt;. Вы также можете отображать значения переменных при условии, что вы конвертируете их в строковый формат (например, с помощью &amp;lt;tt&amp;gt;__toString ()&amp;lt;/tt&amp;gt;, если тип переменной это поддерживает). &lt;br /&gt;
# Приоритет, который может быть одним из: JLog::EMERGENCY, JLog::ALERT, JLog::CRITICAL, JLog::ERROR, JLog::WARNING, JLog::NOTICE, JLog::INFO, JLog::DEBUG (основано на уровнях серьёзности syslog / RFC 5424 – подробнее на [https://ru.wikipedia.org/wiki/Syslog материал Wikipedia о syslog]).&lt;br /&gt;
# Категория, которая является просто текстовой строкой. Вы можете определить любые категории, которые вам нравятся, и лучше всего определять их, чтобы избежать возможных конфликтов с другими расширениями.&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587387</id>
		<title>Using JLog/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587387"/>
		<updated>2019-01-16T08:25:52Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Обзор ==&lt;br /&gt;
Логирование в Joomla дает вам возможность логировать сообщения в файлы и на экран (в консоли отладки Joomla внизу веб-страницы), а основным классом Joomla, который для этого используется, является JLog. &lt;br /&gt;
&lt;br /&gt;
Логирование, в некоторой степени, может контролироваться динамически через общие настройки Joomla и путем настройки плагина «Система - Отладка» (поставляется с Joomla). В целом эти возможности позволяют вам:&lt;br /&gt;
* включать или отключать систему отладки - чтобы вы не потребляли ресурсы без необходимости, но при этом у вас оставалась информация для того, чтобы помочь в устранении неполадок, когда есть проблемы. Например, на живом сайте, на котором установлено ваше расширение.&lt;br /&gt;
* направлять сообщения логов в определенный файл логов вашего собственного расширения&lt;br /&gt;
* просматривать сообщения логов в консоли отладки - вы можете выбрать группу пользователей, для которых должны отображаться сообщения логов, чтобы на живом сайте разработчики могли видеть сообщения, в то время как другие пользователи не затрагивались.&lt;br /&gt;
* фильтровать сообщения консоли отладки по приоритету (например, INFO, DEBUG, WARNING и т. д.) и по категориям (вы можете сами определять свои категории).&lt;br /&gt;
Кроме того, сообщения логов могут быть переведены на разные языки. &lt;br /&gt;
&lt;br /&gt;
Основные параметры конфигурации, относящиеся к ведению логов, показаны ниже.&lt;br /&gt;
&lt;br /&gt;
Включение отладки и отображение консоли отладки Joomla контролируется через общие настройки.&lt;br /&gt;
[[File:Global conf debug-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Логирование в общий файл логов контролируется с помощью вкладки Журнал (логи) конфигурации плагина Joomla «Система - Отладка» (в меню администратора нажмите «Расширения / Плагины», найдите плагин «Система - Отладка» и нажмите на него, чтобы изменить его параметры). &lt;br /&gt;
[[File:Debug logging settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Параметры на вкладке &amp;quot;Плагин&amp;quot; контролируют отображение в консоли отладки Joomla.&lt;br /&gt;
[[File:Debug plugin settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Базовое логирование в файл ==&lt;br /&gt;
&lt;br /&gt;
Чтобы отправить сообщение в лог, используйте функцию &amp;lt;tt&amp;gt;JLog::add()&amp;lt;/tt&amp;gt;. Например:&lt;br /&gt;
&lt;br /&gt;
    JLog::add(&#039;my error message&#039;, JLog::ERROR, &#039;my-error-category&#039;);&lt;br /&gt;
&lt;br /&gt;
Параметры&lt;br /&gt;
# Строка сообщения. Вы можете использовать перевод с этими значениями, например, &amp;lt;tt&amp;gt;JText::_(&#039;MY_EXTENSION_ERR_MSG&#039;)&amp;lt;/tt&amp;gt;. Вы также можете отображать значения переменных при условии, что вы конвертируете их в строковый формат (например, с помощью &amp;lt;tt&amp;gt;__toString ()&amp;lt;/tt&amp;gt;, если тип переменной это поддерживает). &lt;br /&gt;
# Приоритет, который может быть одним из: JLog::EMERGENCY, JLog::ALERT, JLog::CRITICAL, JLog::ERROR, JLog::WARNING, JLog::NOTICE, JLog::INFO, JLog::DEBUG (основано на уровнях серьёзности syslog / RFC 5424 – подробнее на [https://ru.wikipedia.org/wiki/Syslog материал Wikipedia о syslog]).&lt;br /&gt;
# Категория, которая является просто текстовой строкой. Вы можете определить любые категории, которые вам нравятся, и лучше всего определять их, чтобы избежать возможных конфликтов с другими расширениями. &lt;br /&gt;
&lt;br /&gt;
Если вы включите диагностические сообщения отладки в ваше расширение, то это может быть очень полезно при устранении неполадок. В этом случае добавьте к своему лог сообщению проверку на JDEBUG:&lt;br /&gt;
&lt;br /&gt;
    if (JDEBUG) &lt;br /&gt;
    {&lt;br /&gt;
        JLog::add(&#039;my debug message&#039;, JLog::DEBUG, &#039;my-debug-category&#039;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
== Логирование в определённый файл лога == &lt;br /&gt;
Вы можете использовать &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;, чтобы настроить ведение логов в дополнительный файл логов, отфильтровывая сообщения логов по приоритету (уровень серьезности) и / или категории. Параметры &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
# массив с деталями конфигурации - включая имя файла логов&lt;br /&gt;
# уровни серьезности, которые будут логироваться в этом файле&lt;br /&gt;
# массив категорий, которые будут логироваться в этом файле (или если для параметра 4 установлено значение &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;, тогда этот массив определяет категории, которые НЕ должны регистрироваться в файле)&lt;br /&gt;
# (часто пропускается) логическое значение, указывающее, является ли параметр 3 списком включения (по умолчанию P4 = &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;) или списком исключения (P4 = &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Например, если вы разработали расширение &#039;com_helloworld&#039;, вы можете использовать следующее:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.log.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets messages of all log levels to be sent to the file&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
            // The log category/categories which should be recorded in this file&lt;br /&gt;
            // In this case, it&#039;s just the one category from our extension, still&lt;br /&gt;
            // we need to put it inside an array&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Затем, когда вы логируете сообщение, укажите категорию &#039;com_helloworld&#039;, как в примере ниже&lt;br /&gt;
&lt;br /&gt;
    JLog::add(JText::_(&#039;COM_HELLOWORLD_ERROR_MESSAGE_123&#039;), JLog::ERROR, &#039;com_helloworld&#039;);&lt;br /&gt;
&lt;br /&gt;
Это приведет к тому, что ваше сообщение будет записано в com_helloworld.log.php. Если в настройках плагина «Система - Отладка» для параметра «Протоколировать все» задано значение «Да», то это сообщение появится и в общем файле журнала everything.php.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Вы можете объединить это с [[S:MyLanguage/Display error messages and notices|Display error messages and notices]] для отображения видимых уведомлений об ошибках для пользователей.&lt;br /&gt;
&lt;br /&gt;
Вы также можете добавить дополнительный логгер для сбора только критических и аварийных уведомлений:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets critical and emergency log level messages to be sent to the file&lt;br /&gt;
        JLog::CRITICAL + JLog::EMERGENCY,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Вы также можете исключить определенный уровень приоритета от включения в файл логов. Например, чтобы логировать все сообщения кроме DEBUG:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.all_but_debug.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Уровни приоритета &amp;lt;tt&amp;gt;JLog&amp;lt;/tt&amp;gt; реализованы в виде отдельных битов целого числа, поэтому вы можете использовать &#039;&#039;&#039;побитовые&#039;&#039;&#039; операции  (побитовое AND, &amp;amp;; и побитовое NOT, ~) для вычисления подходящих уровней логов. &amp;lt;tt&amp;gt;JLog::All&amp;lt;/tt&amp;gt; является постоянным целым числом, в котором установлены все соответствующие биты, так что включены все уровни приоритета Joomla. &lt;br /&gt;
&lt;br /&gt;
== Форматирование файла лога ==&lt;br /&gt;
&lt;br /&gt;
Первый параметр &amp;lt;tt&amp;gt;addLogger&amp;lt;/tt&amp;gt; может иметь несколько необязательных дополнительных настроек в дополнение к записи &amp;lt;tt&amp;gt;text_file&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, есть параметр &amp;lt;tt&amp;gt;text_entry_format&amp;lt;/tt&amp;gt;, указывающая формат каждой строки в вашем лог файле.&lt;br /&gt;
&lt;br /&gt;
Формат по умолчанию:&lt;br /&gt;
&lt;br /&gt;
    &#039;{DATETIME} {PRIORITY}      {CATEGORY}      {MESSAGE}&#039;&lt;br /&gt;
&lt;br /&gt;
Вот пример другого формата, который показывает, как пропустить категорию:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;,&lt;br /&gt;
             // Sets the format of each line&lt;br /&gt;
             &#039;text_entry_format&#039; =&amp;gt; &#039;{DATETIME} {PRIORITY} {MESSAGE}&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Помимо заполнителей (placeholder), показанных выше в строке по умолчанию, доступны следующие значения:&lt;br /&gt;
&lt;br /&gt;
    {CLIENTIP}      (this is the IP address of the client)&lt;br /&gt;
    {TIME}&lt;br /&gt;
    {DATE}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Существует дополнительный необязательный логический параметр &amp;lt;tt&amp;gt;text_file_no_php&amp;lt;/tt&amp;gt;, который указывает, следует ли добавлять в файл логов обычный префикс:&lt;br /&gt;
&lt;br /&gt;
    #&lt;br /&gt;
    #&amp;lt;?php die(&#039;Forbidden.&#039;);?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Обычно вам не следует устанавливать для этого параметра значение &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;. Файлы логов не должны быть доступны для чтения извне, поскольку они могут предоставить злоумышленникам ценную информацию о вашей системе.&lt;br /&gt;
Изменяйте этот параметр, только если вы знаете, что делаете!&lt;br /&gt;
&lt;br /&gt;
Кроме того, если вы хотите сохранить файл логов где-то еще, а не по пути, указанному в общих настройках Joomla, вы можете изменить параметр &amp;lt;tt&amp;gt;text_file_path&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Логирование в другие места ==&lt;br /&gt;
&lt;br /&gt;
Помимо логирования в файлы, вы также можете логировать в другие места, такие как&lt;br /&gt;
* область сообщений Joomla (сообщение отображается, если вы вызываете &amp;lt;tt&amp;gt;JFactory::getApplication()-&amp;gt;enqueueMessage()&amp;lt;/tt&amp;gt;)&lt;br /&gt;
* таблица базы данных&lt;br /&gt;
* просто echo&lt;br /&gt;
Из них, пожалуй, наиболее полезным является логирование в панель сообщений, которое можно настроить следующим образом:&lt;br /&gt;
     JLog::addLogger(array(&#039;logger&#039; =&amp;gt; &#039;messagequeue&#039;), JLog::ALL, array(&#039;msg-error-cat&#039;));&lt;br /&gt;
Затем, когда вы делаете:&lt;br /&gt;
     JLog::add(&#039;сообщение об ошибке для отображения&#039;, JLog::ERROR, &#039;msg-error-cat&#039;);&lt;br /&gt;
вы получаете сообщение, скопированное на панель сообщений.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Обратите внимание, что код ядра Joomla настраивает запись в очередь сообщений для категории &#039;jerror&#039;, поэтому, если вы используете эту категорию в своих сообщениях журнала, вы получите сообщение, отображаемое на панели сообщений.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
     JLog::add (&#039;ошибка скопирована на панель сообщений&#039;, JLog::ERROR, &#039;jerror&#039;);&lt;br /&gt;
приведет к тому, что сообщение будет отображаться в области сообщений Joomla, даже если вы явно не настроили такое поведение для своего логгера.&lt;br /&gt;
&lt;br /&gt;
== Исключения ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;JLog::add()&amp;lt;/code&amp;gt; кидает исключение, если не может записать в файл логов. Чтобы избежать этого, вам придется либо обернуть вызов в другую функцию, либо реализовать свой собственный класс логгера, а затем включить его:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Use mycustomlogger&lt;br /&gt;
             &#039;logger&#039; =&amp;gt; &#039;mycustomlogger&#039;,&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.errors.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
== Что ещё почитать == &lt;br /&gt;
Логирование в Joomla должно использоваться в тандеме с исключениями PHP, а не в качестве замены. Подробнее в [[S:MyLanguage/Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1|Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]].&lt;br /&gt;
&lt;br /&gt;
Другое руководство (немного устаревшее, но все же полезное) находится по адресу [http://eddify.me/posts/logging-in-joomla-with-jlog.html Logging in Joomla with JLog].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 1.7{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 2.5{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.0{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.x{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/37/ru&amp;diff=587386</id>
		<title>Translations:Using JLog/37/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/37/ru&amp;diff=587386"/>
		<updated>2019-01-16T08:25:52Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Чтобы отправить сообщение в лог, используйте функцию &amp;lt;tt&amp;gt;JLog::add()&amp;lt;/tt&amp;gt;. Например:&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587385</id>
		<title>Using JLog/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587385"/>
		<updated>2019-01-16T08:25:12Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Обзор ==&lt;br /&gt;
Логирование в Joomla дает вам возможность логировать сообщения в файлы и на экран (в консоли отладки Joomla внизу веб-страницы), а основным классом Joomla, который для этого используется, является JLog. &lt;br /&gt;
&lt;br /&gt;
Логирование, в некоторой степени, может контролироваться динамически через общие настройки Joomla и путем настройки плагина «Система - Отладка» (поставляется с Joomla). В целом эти возможности позволяют вам:&lt;br /&gt;
* включать или отключать систему отладки - чтобы вы не потребляли ресурсы без необходимости, но при этом у вас оставалась информация для того, чтобы помочь в устранении неполадок, когда есть проблемы. Например, на живом сайте, на котором установлено ваше расширение.&lt;br /&gt;
* направлять сообщения логов в определенный файл логов вашего собственного расширения&lt;br /&gt;
* просматривать сообщения логов в консоли отладки - вы можете выбрать группу пользователей, для которых должны отображаться сообщения логов, чтобы на живом сайте разработчики могли видеть сообщения, в то время как другие пользователи не затрагивались.&lt;br /&gt;
* фильтровать сообщения консоли отладки по приоритету (например, INFO, DEBUG, WARNING и т. д.) и по категориям (вы можете сами определять свои категории).&lt;br /&gt;
Кроме того, сообщения логов могут быть переведены на разные языки. &lt;br /&gt;
&lt;br /&gt;
Основные параметры конфигурации, относящиеся к ведению логов, показаны ниже.&lt;br /&gt;
&lt;br /&gt;
Включение отладки и отображение консоли отладки Joomla контролируется через общие настройки.&lt;br /&gt;
[[File:Global conf debug-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Логирование в общий файл логов контролируется с помощью вкладки Журнал (логи) конфигурации плагина Joomla «Система - Отладка» (в меню администратора нажмите «Расширения / Плагины», найдите плагин «Система - Отладка» и нажмите на него, чтобы изменить его параметры). &lt;br /&gt;
[[File:Debug logging settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Параметры на вкладке &amp;quot;Плагин&amp;quot; контролируют отображение в консоли отладки Joomla.&lt;br /&gt;
[[File:Debug plugin settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Базовое логирование в файл ==&lt;br /&gt;
&lt;br /&gt;
Чтобы залогировать сообщение, используйте функцию &amp;lt;tt&amp;gt;JLog::add()&amp;lt;/tt&amp;gt;. Например:&lt;br /&gt;
&lt;br /&gt;
    JLog::add(&#039;my error message&#039;, JLog::ERROR, &#039;my-error-category&#039;);&lt;br /&gt;
&lt;br /&gt;
Параметры&lt;br /&gt;
# Строка сообщения. Вы можете использовать перевод с этими значениями, например, &amp;lt;tt&amp;gt;JText::_(&#039;MY_EXTENSION_ERR_MSG&#039;)&amp;lt;/tt&amp;gt;. Вы также можете отображать значения переменных при условии, что вы конвертируете их в строковый формат (например, с помощью &amp;lt;tt&amp;gt;__toString ()&amp;lt;/tt&amp;gt;, если тип переменной это поддерживает). &lt;br /&gt;
# Приоритет, который может быть одним из: JLog::EMERGENCY, JLog::ALERT, JLog::CRITICAL, JLog::ERROR, JLog::WARNING, JLog::NOTICE, JLog::INFO, JLog::DEBUG (основано на уровнях серьёзности syslog / RFC 5424 – подробнее на [https://ru.wikipedia.org/wiki/Syslog материал Wikipedia о syslog]).&lt;br /&gt;
# Категория, которая является просто текстовой строкой. Вы можете определить любые категории, которые вам нравятся, и лучше всего определять их, чтобы избежать возможных конфликтов с другими расширениями. &lt;br /&gt;
&lt;br /&gt;
Если вы включите диагностические сообщения отладки в ваше расширение, то это может быть очень полезно при устранении неполадок. В этом случае добавьте к своему лог сообщению проверку на JDEBUG:&lt;br /&gt;
&lt;br /&gt;
    if (JDEBUG) &lt;br /&gt;
    {&lt;br /&gt;
        JLog::add(&#039;my debug message&#039;, JLog::DEBUG, &#039;my-debug-category&#039;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
== Логирование в определённый файл лога == &lt;br /&gt;
Вы можете использовать &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;, чтобы настроить ведение логов в дополнительный файл логов, отфильтровывая сообщения логов по приоритету (уровень серьезности) и / или категории. Параметры &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
# массив с деталями конфигурации - включая имя файла логов&lt;br /&gt;
# уровни серьезности, которые будут логироваться в этом файле&lt;br /&gt;
# массив категорий, которые будут логироваться в этом файле (или если для параметра 4 установлено значение &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;, тогда этот массив определяет категории, которые НЕ должны регистрироваться в файле)&lt;br /&gt;
# (часто пропускается) логическое значение, указывающее, является ли параметр 3 списком включения (по умолчанию P4 = &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;) или списком исключения (P4 = &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Например, если вы разработали расширение &#039;com_helloworld&#039;, вы можете использовать следующее:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.log.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets messages of all log levels to be sent to the file&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
            // The log category/categories which should be recorded in this file&lt;br /&gt;
            // In this case, it&#039;s just the one category from our extension, still&lt;br /&gt;
            // we need to put it inside an array&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Затем, когда вы логируете сообщение, укажите категорию &#039;com_helloworld&#039;, как в примере ниже&lt;br /&gt;
&lt;br /&gt;
    JLog::add(JText::_(&#039;COM_HELLOWORLD_ERROR_MESSAGE_123&#039;), JLog::ERROR, &#039;com_helloworld&#039;);&lt;br /&gt;
&lt;br /&gt;
Это приведет к тому, что ваше сообщение будет записано в com_helloworld.log.php. Если в настройках плагина «Система - Отладка» для параметра «Протоколировать все» задано значение «Да», то это сообщение появится и в общем файле журнала everything.php.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Вы можете объединить это с [[S:MyLanguage/Display error messages and notices|Display error messages and notices]] для отображения видимых уведомлений об ошибках для пользователей.&lt;br /&gt;
&lt;br /&gt;
Вы также можете добавить дополнительный логгер для сбора только критических и аварийных уведомлений:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets critical and emergency log level messages to be sent to the file&lt;br /&gt;
        JLog::CRITICAL + JLog::EMERGENCY,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Вы также можете исключить определенный уровень приоритета от включения в файл логов. Например, чтобы логировать все сообщения кроме DEBUG:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.all_but_debug.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Уровни приоритета &amp;lt;tt&amp;gt;JLog&amp;lt;/tt&amp;gt; реализованы в виде отдельных битов целого числа, поэтому вы можете использовать &#039;&#039;&#039;побитовые&#039;&#039;&#039; операции  (побитовое AND, &amp;amp;; и побитовое NOT, ~) для вычисления подходящих уровней логов. &amp;lt;tt&amp;gt;JLog::All&amp;lt;/tt&amp;gt; является постоянным целым числом, в котором установлены все соответствующие биты, так что включены все уровни приоритета Joomla. &lt;br /&gt;
&lt;br /&gt;
== Форматирование файла лога ==&lt;br /&gt;
&lt;br /&gt;
Первый параметр &amp;lt;tt&amp;gt;addLogger&amp;lt;/tt&amp;gt; может иметь несколько необязательных дополнительных настроек в дополнение к записи &amp;lt;tt&amp;gt;text_file&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, есть параметр &amp;lt;tt&amp;gt;text_entry_format&amp;lt;/tt&amp;gt;, указывающая формат каждой строки в вашем лог файле.&lt;br /&gt;
&lt;br /&gt;
Формат по умолчанию:&lt;br /&gt;
&lt;br /&gt;
    &#039;{DATETIME} {PRIORITY}      {CATEGORY}      {MESSAGE}&#039;&lt;br /&gt;
&lt;br /&gt;
Вот пример другого формата, который показывает, как пропустить категорию:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;,&lt;br /&gt;
             // Sets the format of each line&lt;br /&gt;
             &#039;text_entry_format&#039; =&amp;gt; &#039;{DATETIME} {PRIORITY} {MESSAGE}&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Помимо заполнителей (placeholder), показанных выше в строке по умолчанию, доступны следующие значения:&lt;br /&gt;
&lt;br /&gt;
    {CLIENTIP}      (this is the IP address of the client)&lt;br /&gt;
    {TIME}&lt;br /&gt;
    {DATE}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Существует дополнительный необязательный логический параметр &amp;lt;tt&amp;gt;text_file_no_php&amp;lt;/tt&amp;gt;, который указывает, следует ли добавлять в файл логов обычный префикс:&lt;br /&gt;
&lt;br /&gt;
    #&lt;br /&gt;
    #&amp;lt;?php die(&#039;Forbidden.&#039;);?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Обычно вам не следует устанавливать для этого параметра значение &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;. Файлы логов не должны быть доступны для чтения извне, поскольку они могут предоставить злоумышленникам ценную информацию о вашей системе.&lt;br /&gt;
Изменяйте этот параметр, только если вы знаете, что делаете!&lt;br /&gt;
&lt;br /&gt;
Кроме того, если вы хотите сохранить файл логов где-то еще, а не по пути, указанному в общих настройках Joomla, вы можете изменить параметр &amp;lt;tt&amp;gt;text_file_path&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Логирование в другие места ==&lt;br /&gt;
&lt;br /&gt;
Помимо логирования в файлы, вы также можете логировать в другие места, такие как&lt;br /&gt;
* область сообщений Joomla (сообщение отображается, если вы вызываете &amp;lt;tt&amp;gt;JFactory::getApplication()-&amp;gt;enqueueMessage()&amp;lt;/tt&amp;gt;)&lt;br /&gt;
* таблица базы данных&lt;br /&gt;
* просто echo&lt;br /&gt;
Из них, пожалуй, наиболее полезным является логирование в панель сообщений, которое можно настроить следующим образом:&lt;br /&gt;
     JLog::addLogger(array(&#039;logger&#039; =&amp;gt; &#039;messagequeue&#039;), JLog::ALL, array(&#039;msg-error-cat&#039;));&lt;br /&gt;
Затем, когда вы делаете:&lt;br /&gt;
     JLog::add(&#039;сообщение об ошибке для отображения&#039;, JLog::ERROR, &#039;msg-error-cat&#039;);&lt;br /&gt;
вы получаете сообщение, скопированное на панель сообщений.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Обратите внимание, что код ядра Joomla настраивает запись в очередь сообщений для категории &#039;jerror&#039;, поэтому, если вы используете эту категорию в своих сообщениях журнала, вы получите сообщение, отображаемое на панели сообщений.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
     JLog::add (&#039;ошибка скопирована на панель сообщений&#039;, JLog::ERROR, &#039;jerror&#039;);&lt;br /&gt;
приведет к тому, что сообщение будет отображаться в области сообщений Joomla, даже если вы явно не настроили такое поведение для своего логгера.&lt;br /&gt;
&lt;br /&gt;
== Исключения ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;JLog::add()&amp;lt;/code&amp;gt; кидает исключение, если не может записать в файл логов. Чтобы избежать этого, вам придется либо обернуть вызов в другую функцию, либо реализовать свой собственный класс логгера, а затем включить его:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Use mycustomlogger&lt;br /&gt;
             &#039;logger&#039; =&amp;gt; &#039;mycustomlogger&#039;,&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.errors.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
== Что ещё почитать == &lt;br /&gt;
Логирование в Joomla должно использоваться в тандеме с исключениями PHP, а не в качестве замены. Подробнее в [[S:MyLanguage/Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1|Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]].&lt;br /&gt;
&lt;br /&gt;
Другое руководство (немного устаревшее, но все же полезное) находится по адресу [http://eddify.me/posts/logging-in-joomla-with-jlog.html Logging in Joomla with JLog].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 1.7{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 2.5{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.0{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.x{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/33/ru&amp;diff=587384</id>
		<title>Translations:Using JLog/33/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/33/ru&amp;diff=587384"/>
		<updated>2019-01-16T08:25:12Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Логирование в общий файл логов контролируется с помощью вкладки Журнал (логи) конфигурации плагина Joomla «Система - Отладка» (в меню администратора нажмите «Расширения / Плагины», найдите плагин «Система - Отладка» и нажмите на него, чтобы изменить его параметры).&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587383</id>
		<title>Using JLog/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587383"/>
		<updated>2019-01-16T08:24:55Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Обзор ==&lt;br /&gt;
Логирование в Joomla дает вам возможность логировать сообщения в файлы и на экран (в консоли отладки Joomla внизу веб-страницы), а основным классом Joomla, который для этого используется, является JLog. &lt;br /&gt;
&lt;br /&gt;
Логирование, в некоторой степени, может контролироваться динамически через общие настройки Joomla и путем настройки плагина «Система - Отладка» (поставляется с Joomla). В целом эти возможности позволяют вам:&lt;br /&gt;
* включать или отключать систему отладки - чтобы вы не потребляли ресурсы без необходимости, но при этом у вас оставалась информация для того, чтобы помочь в устранении неполадок, когда есть проблемы. Например, на живом сайте, на котором установлено ваше расширение.&lt;br /&gt;
* направлять сообщения логов в определенный файл логов вашего собственного расширения&lt;br /&gt;
* просматривать сообщения логов в консоли отладки - вы можете выбрать группу пользователей, для которых должны отображаться сообщения логов, чтобы на живом сайте разработчики могли видеть сообщения, в то время как другие пользователи не затрагивались.&lt;br /&gt;
* фильтровать сообщения консоли отладки по приоритету (например, INFO, DEBUG, WARNING и т. д.) и по категориям (вы можете сами определять свои категории).&lt;br /&gt;
Кроме того, сообщения логов могут быть переведены на разные языки. &lt;br /&gt;
&lt;br /&gt;
Основные параметры конфигурации, относящиеся к ведению логов, показаны ниже.&lt;br /&gt;
&lt;br /&gt;
Включение отладки и отображение консоли отладки Joomla контролируется через общие настройки.&lt;br /&gt;
[[File:Global conf debug-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Логирование в общий файл логов контролируется с помощью вкладки Журнал (логи) конфигурации плагина Joomla «Система - Отладка» (в меню администратора нажмите «Расширения / Плагины», найдите плагин «Система - Отладка» и нажмите на него, чтобы изменить его настраиваемые параметры). &lt;br /&gt;
[[File:Debug logging settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Параметры на вкладке &amp;quot;Плагин&amp;quot; контролируют отображение в консоли отладки Joomla.&lt;br /&gt;
[[File:Debug plugin settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Базовое логирование в файл ==&lt;br /&gt;
&lt;br /&gt;
Чтобы залогировать сообщение, используйте функцию &amp;lt;tt&amp;gt;JLog::add()&amp;lt;/tt&amp;gt;. Например:&lt;br /&gt;
&lt;br /&gt;
    JLog::add(&#039;my error message&#039;, JLog::ERROR, &#039;my-error-category&#039;);&lt;br /&gt;
&lt;br /&gt;
Параметры&lt;br /&gt;
# Строка сообщения. Вы можете использовать перевод с этими значениями, например, &amp;lt;tt&amp;gt;JText::_(&#039;MY_EXTENSION_ERR_MSG&#039;)&amp;lt;/tt&amp;gt;. Вы также можете отображать значения переменных при условии, что вы конвертируете их в строковый формат (например, с помощью &amp;lt;tt&amp;gt;__toString ()&amp;lt;/tt&amp;gt;, если тип переменной это поддерживает). &lt;br /&gt;
# Приоритет, который может быть одним из: JLog::EMERGENCY, JLog::ALERT, JLog::CRITICAL, JLog::ERROR, JLog::WARNING, JLog::NOTICE, JLog::INFO, JLog::DEBUG (основано на уровнях серьёзности syslog / RFC 5424 – подробнее на [https://ru.wikipedia.org/wiki/Syslog материал Wikipedia о syslog]).&lt;br /&gt;
# Категория, которая является просто текстовой строкой. Вы можете определить любые категории, которые вам нравятся, и лучше всего определять их, чтобы избежать возможных конфликтов с другими расширениями. &lt;br /&gt;
&lt;br /&gt;
Если вы включите диагностические сообщения отладки в ваше расширение, то это может быть очень полезно при устранении неполадок. В этом случае добавьте к своему лог сообщению проверку на JDEBUG:&lt;br /&gt;
&lt;br /&gt;
    if (JDEBUG) &lt;br /&gt;
    {&lt;br /&gt;
        JLog::add(&#039;my debug message&#039;, JLog::DEBUG, &#039;my-debug-category&#039;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
== Логирование в определённый файл лога == &lt;br /&gt;
Вы можете использовать &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;, чтобы настроить ведение логов в дополнительный файл логов, отфильтровывая сообщения логов по приоритету (уровень серьезности) и / или категории. Параметры &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
# массив с деталями конфигурации - включая имя файла логов&lt;br /&gt;
# уровни серьезности, которые будут логироваться в этом файле&lt;br /&gt;
# массив категорий, которые будут логироваться в этом файле (или если для параметра 4 установлено значение &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;, тогда этот массив определяет категории, которые НЕ должны регистрироваться в файле)&lt;br /&gt;
# (часто пропускается) логическое значение, указывающее, является ли параметр 3 списком включения (по умолчанию P4 = &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;) или списком исключения (P4 = &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Например, если вы разработали расширение &#039;com_helloworld&#039;, вы можете использовать следующее:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.log.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets messages of all log levels to be sent to the file&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
            // The log category/categories which should be recorded in this file&lt;br /&gt;
            // In this case, it&#039;s just the one category from our extension, still&lt;br /&gt;
            // we need to put it inside an array&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Затем, когда вы логируете сообщение, укажите категорию &#039;com_helloworld&#039;, как в примере ниже&lt;br /&gt;
&lt;br /&gt;
    JLog::add(JText::_(&#039;COM_HELLOWORLD_ERROR_MESSAGE_123&#039;), JLog::ERROR, &#039;com_helloworld&#039;);&lt;br /&gt;
&lt;br /&gt;
Это приведет к тому, что ваше сообщение будет записано в com_helloworld.log.php. Если в настройках плагина «Система - Отладка» для параметра «Протоколировать все» задано значение «Да», то это сообщение появится и в общем файле журнала everything.php.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Вы можете объединить это с [[S:MyLanguage/Display error messages and notices|Display error messages and notices]] для отображения видимых уведомлений об ошибках для пользователей.&lt;br /&gt;
&lt;br /&gt;
Вы также можете добавить дополнительный логгер для сбора только критических и аварийных уведомлений:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets critical and emergency log level messages to be sent to the file&lt;br /&gt;
        JLog::CRITICAL + JLog::EMERGENCY,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Вы также можете исключить определенный уровень приоритета от включения в файл логов. Например, чтобы логировать все сообщения кроме DEBUG:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.all_but_debug.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Уровни приоритета &amp;lt;tt&amp;gt;JLog&amp;lt;/tt&amp;gt; реализованы в виде отдельных битов целого числа, поэтому вы можете использовать &#039;&#039;&#039;побитовые&#039;&#039;&#039; операции  (побитовое AND, &amp;amp;; и побитовое NOT, ~) для вычисления подходящих уровней логов. &amp;lt;tt&amp;gt;JLog::All&amp;lt;/tt&amp;gt; является постоянным целым числом, в котором установлены все соответствующие биты, так что включены все уровни приоритета Joomla. &lt;br /&gt;
&lt;br /&gt;
== Форматирование файла лога ==&lt;br /&gt;
&lt;br /&gt;
Первый параметр &amp;lt;tt&amp;gt;addLogger&amp;lt;/tt&amp;gt; может иметь несколько необязательных дополнительных настроек в дополнение к записи &amp;lt;tt&amp;gt;text_file&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, есть параметр &amp;lt;tt&amp;gt;text_entry_format&amp;lt;/tt&amp;gt;, указывающая формат каждой строки в вашем лог файле.&lt;br /&gt;
&lt;br /&gt;
Формат по умолчанию:&lt;br /&gt;
&lt;br /&gt;
    &#039;{DATETIME} {PRIORITY}      {CATEGORY}      {MESSAGE}&#039;&lt;br /&gt;
&lt;br /&gt;
Вот пример другого формата, который показывает, как пропустить категорию:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;,&lt;br /&gt;
             // Sets the format of each line&lt;br /&gt;
             &#039;text_entry_format&#039; =&amp;gt; &#039;{DATETIME} {PRIORITY} {MESSAGE}&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Помимо заполнителей (placeholder), показанных выше в строке по умолчанию, доступны следующие значения:&lt;br /&gt;
&lt;br /&gt;
    {CLIENTIP}      (this is the IP address of the client)&lt;br /&gt;
    {TIME}&lt;br /&gt;
    {DATE}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Существует дополнительный необязательный логический параметр &amp;lt;tt&amp;gt;text_file_no_php&amp;lt;/tt&amp;gt;, который указывает, следует ли добавлять в файл логов обычный префикс:&lt;br /&gt;
&lt;br /&gt;
    #&lt;br /&gt;
    #&amp;lt;?php die(&#039;Forbidden.&#039;);?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Обычно вам не следует устанавливать для этого параметра значение &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;. Файлы логов не должны быть доступны для чтения извне, поскольку они могут предоставить злоумышленникам ценную информацию о вашей системе.&lt;br /&gt;
Изменяйте этот параметр, только если вы знаете, что делаете!&lt;br /&gt;
&lt;br /&gt;
Кроме того, если вы хотите сохранить файл логов где-то еще, а не по пути, указанному в общих настройках Joomla, вы можете изменить параметр &amp;lt;tt&amp;gt;text_file_path&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Логирование в другие места ==&lt;br /&gt;
&lt;br /&gt;
Помимо логирования в файлы, вы также можете логировать в другие места, такие как&lt;br /&gt;
* область сообщений Joomla (сообщение отображается, если вы вызываете &amp;lt;tt&amp;gt;JFactory::getApplication()-&amp;gt;enqueueMessage()&amp;lt;/tt&amp;gt;)&lt;br /&gt;
* таблица базы данных&lt;br /&gt;
* просто echo&lt;br /&gt;
Из них, пожалуй, наиболее полезным является логирование в панель сообщений, которое можно настроить следующим образом:&lt;br /&gt;
     JLog::addLogger(array(&#039;logger&#039; =&amp;gt; &#039;messagequeue&#039;), JLog::ALL, array(&#039;msg-error-cat&#039;));&lt;br /&gt;
Затем, когда вы делаете:&lt;br /&gt;
     JLog::add(&#039;сообщение об ошибке для отображения&#039;, JLog::ERROR, &#039;msg-error-cat&#039;);&lt;br /&gt;
вы получаете сообщение, скопированное на панель сообщений.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Обратите внимание, что код ядра Joomla настраивает запись в очередь сообщений для категории &#039;jerror&#039;, поэтому, если вы используете эту категорию в своих сообщениях журнала, вы получите сообщение, отображаемое на панели сообщений.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
     JLog::add (&#039;ошибка скопирована на панель сообщений&#039;, JLog::ERROR, &#039;jerror&#039;);&lt;br /&gt;
приведет к тому, что сообщение будет отображаться в области сообщений Joomla, даже если вы явно не настроили такое поведение для своего логгера.&lt;br /&gt;
&lt;br /&gt;
== Исключения ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;JLog::add()&amp;lt;/code&amp;gt; кидает исключение, если не может записать в файл логов. Чтобы избежать этого, вам придется либо обернуть вызов в другую функцию, либо реализовать свой собственный класс логгера, а затем включить его:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Use mycustomlogger&lt;br /&gt;
             &#039;logger&#039; =&amp;gt; &#039;mycustomlogger&#039;,&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.errors.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
== Что ещё почитать == &lt;br /&gt;
Логирование в Joomla должно использоваться в тандеме с исключениями PHP, а не в качестве замены. Подробнее в [[S:MyLanguage/Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1|Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]].&lt;br /&gt;
&lt;br /&gt;
Другое руководство (немного устаревшее, но все же полезное) находится по адресу [http://eddify.me/posts/logging-in-joomla-with-jlog.html Logging in Joomla with JLog].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 1.7{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 2.5{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.0{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.x{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/33/ru&amp;diff=587382</id>
		<title>Translations:Using JLog/33/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/33/ru&amp;diff=587382"/>
		<updated>2019-01-16T08:24:55Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Логирование в общий файл логов контролируется с помощью вкладки Журнал (логи) конфигурации плагина Joomla «Система - Отладка» (в меню администратора нажмите «Расширения / Плагины», найдите плагин «Система - Отладка» и нажмите на него, чтобы изменить его настраиваемые параметры).&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587381</id>
		<title>Using JLog/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587381"/>
		<updated>2019-01-16T08:23:54Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Обзор ==&lt;br /&gt;
Логирование в Joomla дает вам возможность логировать сообщения в файлы и на экран (в консоли отладки Joomla внизу веб-страницы), а основным классом Joomla, который для этого используется, является JLog. &lt;br /&gt;
&lt;br /&gt;
Логирование, в некоторой степени, может контролироваться динамически через общие настройки Joomla и путем настройки плагина «Система - Отладка» (поставляется с Joomla). В целом эти возможности позволяют вам:&lt;br /&gt;
* включать или отключать систему отладки - чтобы вы не потребляли ресурсы без необходимости, но при этом у вас оставалась информация для того, чтобы помочь в устранении неполадок, когда есть проблемы. Например, на живом сайте, на котором установлено ваше расширение.&lt;br /&gt;
* направлять сообщения логов в определенный файл логов вашего собственного расширения&lt;br /&gt;
* просматривать сообщения логов в консоли отладки - вы можете выбрать группу пользователей, для которых должны отображаться сообщения логов, чтобы на живом сайте разработчики могли видеть сообщения, в то время как другие пользователи не затрагивались.&lt;br /&gt;
* фильтровать сообщения консоли отладки по приоритету (например, INFO, DEBUG, WARNING и т. д.) и по категориям (вы можете сами определять свои категории).&lt;br /&gt;
Кроме того, сообщения логов могут быть переведены на разные языки. &lt;br /&gt;
&lt;br /&gt;
Основные параметры конфигурации, относящиеся к ведению логов, показаны ниже.&lt;br /&gt;
&lt;br /&gt;
Включение отладки и отображение консоли отладки Joomla контролируется через общие настройки.&lt;br /&gt;
[[File:Global conf debug-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Логирование в общий файл логов контролируется с помощью вкладки Журнал (логи) конфигурации плагина Joomla Система - Отладка (в меню администратора нажмите «Расширения / Плагины», найдите плагин «Система - Отладка» и нажмите на него, чтобы изменить его настраиваемые параметры). &lt;br /&gt;
[[File:Debug logging settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Параметры на вкладке &amp;quot;Плагин&amp;quot; контролируют отображение в консоли отладки Joomla.&lt;br /&gt;
[[File:Debug plugin settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Базовое логирование в файл ==&lt;br /&gt;
&lt;br /&gt;
Чтобы залогировать сообщение, используйте функцию &amp;lt;tt&amp;gt;JLog::add()&amp;lt;/tt&amp;gt;. Например:&lt;br /&gt;
&lt;br /&gt;
    JLog::add(&#039;my error message&#039;, JLog::ERROR, &#039;my-error-category&#039;);&lt;br /&gt;
&lt;br /&gt;
Параметры&lt;br /&gt;
# Строка сообщения. Вы можете использовать перевод с этими значениями, например, &amp;lt;tt&amp;gt;JText::_(&#039;MY_EXTENSION_ERR_MSG&#039;)&amp;lt;/tt&amp;gt;. Вы также можете отображать значения переменных при условии, что вы конвертируете их в строковый формат (например, с помощью &amp;lt;tt&amp;gt;__toString ()&amp;lt;/tt&amp;gt;, если тип переменной это поддерживает). &lt;br /&gt;
# Приоритет, который может быть одним из: JLog::EMERGENCY, JLog::ALERT, JLog::CRITICAL, JLog::ERROR, JLog::WARNING, JLog::NOTICE, JLog::INFO, JLog::DEBUG (основано на уровнях серьёзности syslog / RFC 5424 – подробнее на [https://ru.wikipedia.org/wiki/Syslog материал Wikipedia о syslog]).&lt;br /&gt;
# Категория, которая является просто текстовой строкой. Вы можете определить любые категории, которые вам нравятся, и лучше всего определять их, чтобы избежать возможных конфликтов с другими расширениями. &lt;br /&gt;
&lt;br /&gt;
Если вы включите диагностические сообщения отладки в ваше расширение, то это может быть очень полезно при устранении неполадок. В этом случае добавьте к своему лог сообщению проверку на JDEBUG:&lt;br /&gt;
&lt;br /&gt;
    if (JDEBUG) &lt;br /&gt;
    {&lt;br /&gt;
        JLog::add(&#039;my debug message&#039;, JLog::DEBUG, &#039;my-debug-category&#039;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
== Логирование в определённый файл лога == &lt;br /&gt;
Вы можете использовать &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;, чтобы настроить ведение логов в дополнительный файл логов, отфильтровывая сообщения логов по приоритету (уровень серьезности) и / или категории. Параметры &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
# массив с деталями конфигурации - включая имя файла логов&lt;br /&gt;
# уровни серьезности, которые будут логироваться в этом файле&lt;br /&gt;
# массив категорий, которые будут логироваться в этом файле (или если для параметра 4 установлено значение &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;, тогда этот массив определяет категории, которые НЕ должны регистрироваться в файле)&lt;br /&gt;
# (часто пропускается) логическое значение, указывающее, является ли параметр 3 списком включения (по умолчанию P4 = &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;) или списком исключения (P4 = &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Например, если вы разработали расширение &#039;com_helloworld&#039;, вы можете использовать следующее:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.log.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets messages of all log levels to be sent to the file&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
            // The log category/categories which should be recorded in this file&lt;br /&gt;
            // In this case, it&#039;s just the one category from our extension, still&lt;br /&gt;
            // we need to put it inside an array&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Затем, когда вы логируете сообщение, укажите категорию &#039;com_helloworld&#039;, как в примере ниже&lt;br /&gt;
&lt;br /&gt;
    JLog::add(JText::_(&#039;COM_HELLOWORLD_ERROR_MESSAGE_123&#039;), JLog::ERROR, &#039;com_helloworld&#039;);&lt;br /&gt;
&lt;br /&gt;
Это приведет к тому, что ваше сообщение будет записано в com_helloworld.log.php. Если в настройках плагина «Система - Отладка» для параметра «Протоколировать все» задано значение «Да», то это сообщение появится и в общем файле журнала everything.php.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Вы можете объединить это с [[S:MyLanguage/Display error messages and notices|Display error messages and notices]] для отображения видимых уведомлений об ошибках для пользователей.&lt;br /&gt;
&lt;br /&gt;
Вы также можете добавить дополнительный логгер для сбора только критических и аварийных уведомлений:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets critical and emergency log level messages to be sent to the file&lt;br /&gt;
        JLog::CRITICAL + JLog::EMERGENCY,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Вы также можете исключить определенный уровень приоритета от включения в файл логов. Например, чтобы логировать все сообщения кроме DEBUG:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.all_but_debug.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Уровни приоритета &amp;lt;tt&amp;gt;JLog&amp;lt;/tt&amp;gt; реализованы в виде отдельных битов целого числа, поэтому вы можете использовать &#039;&#039;&#039;побитовые&#039;&#039;&#039; операции  (побитовое AND, &amp;amp;; и побитовое NOT, ~) для вычисления подходящих уровней логов. &amp;lt;tt&amp;gt;JLog::All&amp;lt;/tt&amp;gt; является постоянным целым числом, в котором установлены все соответствующие биты, так что включены все уровни приоритета Joomla. &lt;br /&gt;
&lt;br /&gt;
== Форматирование файла лога ==&lt;br /&gt;
&lt;br /&gt;
Первый параметр &amp;lt;tt&amp;gt;addLogger&amp;lt;/tt&amp;gt; может иметь несколько необязательных дополнительных настроек в дополнение к записи &amp;lt;tt&amp;gt;text_file&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, есть параметр &amp;lt;tt&amp;gt;text_entry_format&amp;lt;/tt&amp;gt;, указывающая формат каждой строки в вашем лог файле.&lt;br /&gt;
&lt;br /&gt;
Формат по умолчанию:&lt;br /&gt;
&lt;br /&gt;
    &#039;{DATETIME} {PRIORITY}      {CATEGORY}      {MESSAGE}&#039;&lt;br /&gt;
&lt;br /&gt;
Вот пример другого формата, который показывает, как пропустить категорию:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;,&lt;br /&gt;
             // Sets the format of each line&lt;br /&gt;
             &#039;text_entry_format&#039; =&amp;gt; &#039;{DATETIME} {PRIORITY} {MESSAGE}&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Помимо заполнителей (placeholder), показанных выше в строке по умолчанию, доступны следующие значения:&lt;br /&gt;
&lt;br /&gt;
    {CLIENTIP}      (this is the IP address of the client)&lt;br /&gt;
    {TIME}&lt;br /&gt;
    {DATE}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Существует дополнительный необязательный логический параметр &amp;lt;tt&amp;gt;text_file_no_php&amp;lt;/tt&amp;gt;, который указывает, следует ли добавлять в файл логов обычный префикс:&lt;br /&gt;
&lt;br /&gt;
    #&lt;br /&gt;
    #&amp;lt;?php die(&#039;Forbidden.&#039;);?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Обычно вам не следует устанавливать для этого параметра значение &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;. Файлы логов не должны быть доступны для чтения извне, поскольку они могут предоставить злоумышленникам ценную информацию о вашей системе.&lt;br /&gt;
Изменяйте этот параметр, только если вы знаете, что делаете!&lt;br /&gt;
&lt;br /&gt;
Кроме того, если вы хотите сохранить файл логов где-то еще, а не по пути, указанному в общих настройках Joomla, вы можете изменить параметр &amp;lt;tt&amp;gt;text_file_path&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Логирование в другие места ==&lt;br /&gt;
&lt;br /&gt;
Помимо логирования в файлы, вы также можете логировать в другие места, такие как&lt;br /&gt;
* область сообщений Joomla (сообщение отображается, если вы вызываете &amp;lt;tt&amp;gt;JFactory::getApplication()-&amp;gt;enqueueMessage()&amp;lt;/tt&amp;gt;)&lt;br /&gt;
* таблица базы данных&lt;br /&gt;
* просто echo&lt;br /&gt;
Из них, пожалуй, наиболее полезным является логирование в панель сообщений, которое можно настроить следующим образом:&lt;br /&gt;
     JLog::addLogger(array(&#039;logger&#039; =&amp;gt; &#039;messagequeue&#039;), JLog::ALL, array(&#039;msg-error-cat&#039;));&lt;br /&gt;
Затем, когда вы делаете:&lt;br /&gt;
     JLog::add(&#039;сообщение об ошибке для отображения&#039;, JLog::ERROR, &#039;msg-error-cat&#039;);&lt;br /&gt;
вы получаете сообщение, скопированное на панель сообщений.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Обратите внимание, что код ядра Joomla настраивает запись в очередь сообщений для категории &#039;jerror&#039;, поэтому, если вы используете эту категорию в своих сообщениях журнала, вы получите сообщение, отображаемое на панели сообщений.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
     JLog::add (&#039;ошибка скопирована на панель сообщений&#039;, JLog::ERROR, &#039;jerror&#039;);&lt;br /&gt;
приведет к тому, что сообщение будет отображаться в области сообщений Joomla, даже если вы явно не настроили такое поведение для своего логгера.&lt;br /&gt;
&lt;br /&gt;
== Исключения ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;JLog::add()&amp;lt;/code&amp;gt; кидает исключение, если не может записать в файл логов. Чтобы избежать этого, вам придется либо обернуть вызов в другую функцию, либо реализовать свой собственный класс логгера, а затем включить его:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Use mycustomlogger&lt;br /&gt;
             &#039;logger&#039; =&amp;gt; &#039;mycustomlogger&#039;,&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.errors.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
== Что ещё почитать == &lt;br /&gt;
Логирование в Joomla должно использоваться в тандеме с исключениями PHP, а не в качестве замены. Подробнее в [[S:MyLanguage/Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1|Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]].&lt;br /&gt;
&lt;br /&gt;
Другое руководство (немного устаревшее, но все же полезное) находится по адресу [http://eddify.me/posts/logging-in-joomla-with-jlog.html Logging in Joomla with JLog].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 1.7{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 2.5{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.0{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.x{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/29/ru&amp;diff=587380</id>
		<title>Translations:Using JLog/29/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/29/ru&amp;diff=587380"/>
		<updated>2019-01-16T08:23:54Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Логирование, в некоторой степени, может контролироваться динамически через общие настройки Joomla и путем настройки плагина «Система - Отладка» (поставляется с Joomla). В целом эти возможности позволяют вам:&lt;br /&gt;
* включать или отключать систему отладки - чтобы вы не потребляли ресурсы без необходимости, но при этом у вас оставалась информация для того, чтобы помочь в устранении неполадок, когда есть проблемы. Например, на живом сайте, на котором установлено ваше расширение.&lt;br /&gt;
* направлять сообщения логов в определенный файл логов вашего собственного расширения&lt;br /&gt;
* просматривать сообщения логов в консоли отладки - вы можете выбрать группу пользователей, для которых должны отображаться сообщения логов, чтобы на живом сайте разработчики могли видеть сообщения, в то время как другие пользователи не затрагивались.&lt;br /&gt;
* фильтровать сообщения консоли отладки по приоритету (например, INFO, DEBUG, WARNING и т. д.) и по категориям (вы можете сами определять свои категории).&lt;br /&gt;
Кроме того, сообщения логов могут быть переведены на разные языки.&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587379</id>
		<title>Using JLog/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587379"/>
		<updated>2019-01-16T08:22:27Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Обзор ==&lt;br /&gt;
Логирование в Joomla дает вам возможность логировать сообщения в файлы и на экран (в консоли отладки Joomla внизу веб-страницы), а основным классом Joomla, который для этого используется, является JLog. &lt;br /&gt;
&lt;br /&gt;
Логирование, в некоторой степени, может контролироваться динамически через общие настройки Joomla и путем настройки плагина «Система - Отладка» (поставляется с Joomla). В целом эти возможности позволяют вам:&lt;br /&gt;
* включать или отключать систему отладки - чтобы вы не потребляли ресурсы без необходимости, но при этом у вас оставалась информация, чтобы помочь в устранении неполадок, когда есть проблемы. Например, на живом сайте, на котором установлено ваше расширение.&lt;br /&gt;
* направлять сообщения логов в определенный файл логов вашего собственного расширения&lt;br /&gt;
* просматривать сообщения логов в консоли отладки - вы можете выбрать группу пользователей, для которых должны отображаться сообщения логов, чтобы на живом сайте разработчики могли видеть сообщения, в то время как другие пользователи не затрагивались.&lt;br /&gt;
* фильтровать сообщения консоли отладки по приоритету (например, INFO, DEBUG, WARNING и т. д.) и по категориям (вы можете сами определять свои категории).&lt;br /&gt;
Кроме того, сообщения логов могут быть переведены на разные языки. &lt;br /&gt;
&lt;br /&gt;
Основные параметры конфигурации, относящиеся к ведению логов, показаны ниже.&lt;br /&gt;
&lt;br /&gt;
Включение отладки и отображение консоли отладки Joomla контролируется через общие настройки.&lt;br /&gt;
[[File:Global conf debug-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Логирование в общий файл логов контролируется с помощью вкладки Журнал (логи) конфигурации плагина Joomla Система - Отладка (в меню администратора нажмите «Расширения / Плагины», найдите плагин «Система - Отладка» и нажмите на него, чтобы изменить его настраиваемые параметры). &lt;br /&gt;
[[File:Debug logging settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Параметры на вкладке &amp;quot;Плагин&amp;quot; контролируют отображение в консоли отладки Joomla.&lt;br /&gt;
[[File:Debug plugin settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Базовое логирование в файл ==&lt;br /&gt;
&lt;br /&gt;
Чтобы залогировать сообщение, используйте функцию &amp;lt;tt&amp;gt;JLog::add()&amp;lt;/tt&amp;gt;. Например:&lt;br /&gt;
&lt;br /&gt;
    JLog::add(&#039;my error message&#039;, JLog::ERROR, &#039;my-error-category&#039;);&lt;br /&gt;
&lt;br /&gt;
Параметры&lt;br /&gt;
# Строка сообщения. Вы можете использовать перевод с этими значениями, например, &amp;lt;tt&amp;gt;JText::_(&#039;MY_EXTENSION_ERR_MSG&#039;)&amp;lt;/tt&amp;gt;. Вы также можете отображать значения переменных при условии, что вы конвертируете их в строковый формат (например, с помощью &amp;lt;tt&amp;gt;__toString ()&amp;lt;/tt&amp;gt;, если тип переменной это поддерживает). &lt;br /&gt;
# Приоритет, который может быть одним из: JLog::EMERGENCY, JLog::ALERT, JLog::CRITICAL, JLog::ERROR, JLog::WARNING, JLog::NOTICE, JLog::INFO, JLog::DEBUG (основано на уровнях серьёзности syslog / RFC 5424 – подробнее на [https://ru.wikipedia.org/wiki/Syslog материал Wikipedia о syslog]).&lt;br /&gt;
# Категория, которая является просто текстовой строкой. Вы можете определить любые категории, которые вам нравятся, и лучше всего определять их, чтобы избежать возможных конфликтов с другими расширениями. &lt;br /&gt;
&lt;br /&gt;
Если вы включите диагностические сообщения отладки в ваше расширение, то это может быть очень полезно при устранении неполадок. В этом случае добавьте к своему лог сообщению проверку на JDEBUG:&lt;br /&gt;
&lt;br /&gt;
    if (JDEBUG) &lt;br /&gt;
    {&lt;br /&gt;
        JLog::add(&#039;my debug message&#039;, JLog::DEBUG, &#039;my-debug-category&#039;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
== Логирование в определённый файл лога == &lt;br /&gt;
Вы можете использовать &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;, чтобы настроить ведение логов в дополнительный файл логов, отфильтровывая сообщения логов по приоритету (уровень серьезности) и / или категории. Параметры &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
# массив с деталями конфигурации - включая имя файла логов&lt;br /&gt;
# уровни серьезности, которые будут логироваться в этом файле&lt;br /&gt;
# массив категорий, которые будут логироваться в этом файле (или если для параметра 4 установлено значение &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;, тогда этот массив определяет категории, которые НЕ должны регистрироваться в файле)&lt;br /&gt;
# (часто пропускается) логическое значение, указывающее, является ли параметр 3 списком включения (по умолчанию P4 = &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;) или списком исключения (P4 = &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Например, если вы разработали расширение &#039;com_helloworld&#039;, вы можете использовать следующее:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.log.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets messages of all log levels to be sent to the file&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
            // The log category/categories which should be recorded in this file&lt;br /&gt;
            // In this case, it&#039;s just the one category from our extension, still&lt;br /&gt;
            // we need to put it inside an array&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Затем, когда вы логируете сообщение, укажите категорию &#039;com_helloworld&#039;, как в примере ниже&lt;br /&gt;
&lt;br /&gt;
    JLog::add(JText::_(&#039;COM_HELLOWORLD_ERROR_MESSAGE_123&#039;), JLog::ERROR, &#039;com_helloworld&#039;);&lt;br /&gt;
&lt;br /&gt;
Это приведет к тому, что ваше сообщение будет записано в com_helloworld.log.php. Если в настройках плагина «Система - Отладка» для параметра «Протоколировать все» задано значение «Да», то это сообщение появится и в общем файле журнала everything.php.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Вы можете объединить это с [[S:MyLanguage/Display error messages and notices|Display error messages and notices]] для отображения видимых уведомлений об ошибках для пользователей.&lt;br /&gt;
&lt;br /&gt;
Вы также можете добавить дополнительный логгер для сбора только критических и аварийных уведомлений:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets critical and emergency log level messages to be sent to the file&lt;br /&gt;
        JLog::CRITICAL + JLog::EMERGENCY,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Вы также можете исключить определенный уровень приоритета от включения в файл логов. Например, чтобы логировать все сообщения кроме DEBUG:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.all_but_debug.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Уровни приоритета &amp;lt;tt&amp;gt;JLog&amp;lt;/tt&amp;gt; реализованы в виде отдельных битов целого числа, поэтому вы можете использовать &#039;&#039;&#039;побитовые&#039;&#039;&#039; операции  (побитовое AND, &amp;amp;; и побитовое NOT, ~) для вычисления подходящих уровней логов. &amp;lt;tt&amp;gt;JLog::All&amp;lt;/tt&amp;gt; является постоянным целым числом, в котором установлены все соответствующие биты, так что включены все уровни приоритета Joomla. &lt;br /&gt;
&lt;br /&gt;
== Форматирование файла лога ==&lt;br /&gt;
&lt;br /&gt;
Первый параметр &amp;lt;tt&amp;gt;addLogger&amp;lt;/tt&amp;gt; может иметь несколько необязательных дополнительных настроек в дополнение к записи &amp;lt;tt&amp;gt;text_file&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, есть параметр &amp;lt;tt&amp;gt;text_entry_format&amp;lt;/tt&amp;gt;, указывающая формат каждой строки в вашем лог файле.&lt;br /&gt;
&lt;br /&gt;
Формат по умолчанию:&lt;br /&gt;
&lt;br /&gt;
    &#039;{DATETIME} {PRIORITY}      {CATEGORY}      {MESSAGE}&#039;&lt;br /&gt;
&lt;br /&gt;
Вот пример другого формата, который показывает, как пропустить категорию:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;,&lt;br /&gt;
             // Sets the format of each line&lt;br /&gt;
             &#039;text_entry_format&#039; =&amp;gt; &#039;{DATETIME} {PRIORITY} {MESSAGE}&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Помимо заполнителей (placeholder), показанных выше в строке по умолчанию, доступны следующие значения:&lt;br /&gt;
&lt;br /&gt;
    {CLIENTIP}      (this is the IP address of the client)&lt;br /&gt;
    {TIME}&lt;br /&gt;
    {DATE}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Существует дополнительный необязательный логический параметр &amp;lt;tt&amp;gt;text_file_no_php&amp;lt;/tt&amp;gt;, который указывает, следует ли добавлять в файл логов обычный префикс:&lt;br /&gt;
&lt;br /&gt;
    #&lt;br /&gt;
    #&amp;lt;?php die(&#039;Forbidden.&#039;);?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Обычно вам не следует устанавливать для этого параметра значение &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;. Файлы логов не должны быть доступны для чтения извне, поскольку они могут предоставить злоумышленникам ценную информацию о вашей системе.&lt;br /&gt;
Изменяйте этот параметр, только если вы знаете, что делаете!&lt;br /&gt;
&lt;br /&gt;
Кроме того, если вы хотите сохранить файл логов где-то еще, а не по пути, указанному в общих настройках Joomla, вы можете изменить параметр &amp;lt;tt&amp;gt;text_file_path&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Логирование в другие места ==&lt;br /&gt;
&lt;br /&gt;
Помимо логирования в файлы, вы также можете логировать в другие места, такие как&lt;br /&gt;
* область сообщений Joomla (сообщение отображается, если вы вызываете &amp;lt;tt&amp;gt;JFactory::getApplication()-&amp;gt;enqueueMessage()&amp;lt;/tt&amp;gt;)&lt;br /&gt;
* таблица базы данных&lt;br /&gt;
* просто echo&lt;br /&gt;
Из них, пожалуй, наиболее полезным является логирование в панель сообщений, которое можно настроить следующим образом:&lt;br /&gt;
     JLog::addLogger(array(&#039;logger&#039; =&amp;gt; &#039;messagequeue&#039;), JLog::ALL, array(&#039;msg-error-cat&#039;));&lt;br /&gt;
Затем, когда вы делаете:&lt;br /&gt;
     JLog::add(&#039;сообщение об ошибке для отображения&#039;, JLog::ERROR, &#039;msg-error-cat&#039;);&lt;br /&gt;
вы получаете сообщение, скопированное на панель сообщений.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Обратите внимание, что код ядра Joomla настраивает запись в очередь сообщений для категории &#039;jerror&#039;, поэтому, если вы используете эту категорию в своих сообщениях журнала, вы получите сообщение, отображаемое на панели сообщений.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
     JLog::add (&#039;ошибка скопирована на панель сообщений&#039;, JLog::ERROR, &#039;jerror&#039;);&lt;br /&gt;
приведет к тому, что сообщение будет отображаться в области сообщений Joomla, даже если вы явно не настроили такое поведение для своего логгера.&lt;br /&gt;
&lt;br /&gt;
== Исключения ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;JLog::add()&amp;lt;/code&amp;gt; кидает исключение, если не может записать в файл логов. Чтобы избежать этого, вам придется либо обернуть вызов в другую функцию, либо реализовать свой собственный класс логгера, а затем включить его:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Use mycustomlogger&lt;br /&gt;
             &#039;logger&#039; =&amp;gt; &#039;mycustomlogger&#039;,&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.errors.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
== Что ещё почитать == &lt;br /&gt;
Логирование в Joomla должно использоваться в тандеме с исключениями PHP, а не в качестве замены. Подробнее в [[S:MyLanguage/Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1|Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]].&lt;br /&gt;
&lt;br /&gt;
Другое руководство (немного устаревшее, но все же полезное) находится по адресу [http://eddify.me/posts/logging-in-joomla-with-jlog.html Logging in Joomla with JLog].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 1.7{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 2.5{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.0{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.x{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/29/ru&amp;diff=587378</id>
		<title>Translations:Using JLog/29/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/29/ru&amp;diff=587378"/>
		<updated>2019-01-16T08:22:27Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Логирование, в некоторой степени, может контролироваться динамически через общие настройки Joomla и путем настройки плагина «Система - Отладка» (поставляется с Joomla). В целом эти возможности позволяют вам:&lt;br /&gt;
* включать или отключать систему отладки - чтобы вы не потребляли ресурсы без необходимости, но при этом у вас оставалась информация, чтобы помочь в устранении неполадок, когда есть проблемы. Например, на живом сайте, на котором установлено ваше расширение.&lt;br /&gt;
* направлять сообщения логов в определенный файл логов вашего собственного расширения&lt;br /&gt;
* просматривать сообщения логов в консоли отладки - вы можете выбрать группу пользователей, для которых должны отображаться сообщения логов, чтобы на живом сайте разработчики могли видеть сообщения, в то время как другие пользователи не затрагивались.&lt;br /&gt;
* фильтровать сообщения консоли отладки по приоритету (например, INFO, DEBUG, WARNING и т. д.) и по категориям (вы можете сами определять свои категории).&lt;br /&gt;
Кроме того, сообщения логов могут быть переведены на разные языки.&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587377</id>
		<title>Using JLog/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587377"/>
		<updated>2019-01-16T08:20:01Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Обзор ==&lt;br /&gt;
Логирование в Joomla дает вам возможность логировать сообщения в файлы и на экран (в консоли отладки Joomla внизу веб-страницы), а основным классом Joomla, который для этого используется, является JLog. &lt;br /&gt;
&lt;br /&gt;
Логирование, в некоторой степени, может контролироваться динамически через общие настройки Joomla и путем настройки плагина Система - Отладка (поставляется с Joomla). В целом эти возможности позволяют вам:&lt;br /&gt;
* включать или отключать систему отладки - чтобы вы не потребляли ресурсы без необходимости, но при этом у вас оставалась информация, чтобы помочь в устранении неполадок, когда есть проблемы. Например, на живом сайте, на котором установлено ваше расширение.&lt;br /&gt;
* направлять сообщения логов в определенный файл логов вашего собственного расширения&lt;br /&gt;
* просматривать сообщения логов в консоли отладки - вы можете выбрать группу пользователей, для которых должны отображаться сообщения логов, чтобы на живом сайте разработчики могли видеть сообщения, в то время как другие пользователи не затрагивались.&lt;br /&gt;
* фильтровать сообщения консоли отладки по приоритету (например, INFO, DEBUG, WARNING и т. д.) и по категориям (вы можете сами определять свои категории).&lt;br /&gt;
Кроме того, сообщения логов могут быть переведены на разные языки. &lt;br /&gt;
&lt;br /&gt;
Основные параметры конфигурации, относящиеся к ведению логов, показаны ниже.&lt;br /&gt;
&lt;br /&gt;
Включение отладки и отображение консоли отладки Joomla контролируется через общие настройки.&lt;br /&gt;
[[File:Global conf debug-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Логирование в общий файл логов контролируется с помощью вкладки Журнал (логи) конфигурации плагина Joomla Система - Отладка (в меню администратора нажмите «Расширения / Плагины», найдите плагин «Система - Отладка» и нажмите на него, чтобы изменить его настраиваемые параметры). &lt;br /&gt;
[[File:Debug logging settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Параметры на вкладке &amp;quot;Плагин&amp;quot; контролируют отображение в консоли отладки Joomla.&lt;br /&gt;
[[File:Debug plugin settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Базовое логирование в файл ==&lt;br /&gt;
&lt;br /&gt;
Чтобы залогировать сообщение, используйте функцию &amp;lt;tt&amp;gt;JLog::add()&amp;lt;/tt&amp;gt;. Например:&lt;br /&gt;
&lt;br /&gt;
    JLog::add(&#039;my error message&#039;, JLog::ERROR, &#039;my-error-category&#039;);&lt;br /&gt;
&lt;br /&gt;
Параметры&lt;br /&gt;
# Строка сообщения. Вы можете использовать перевод с этими значениями, например, &amp;lt;tt&amp;gt;JText::_(&#039;MY_EXTENSION_ERR_MSG&#039;)&amp;lt;/tt&amp;gt;. Вы также можете отображать значения переменных при условии, что вы конвертируете их в строковый формат (например, с помощью &amp;lt;tt&amp;gt;__toString ()&amp;lt;/tt&amp;gt;, если тип переменной это поддерживает). &lt;br /&gt;
# Приоритет, который может быть одним из: JLog::EMERGENCY, JLog::ALERT, JLog::CRITICAL, JLog::ERROR, JLog::WARNING, JLog::NOTICE, JLog::INFO, JLog::DEBUG (основано на уровнях серьёзности syslog / RFC 5424 – подробнее на [https://ru.wikipedia.org/wiki/Syslog материал Wikipedia о syslog]).&lt;br /&gt;
# Категория, которая является просто текстовой строкой. Вы можете определить любые категории, которые вам нравятся, и лучше всего определять их, чтобы избежать возможных конфликтов с другими расширениями. &lt;br /&gt;
&lt;br /&gt;
Если вы включите диагностические сообщения отладки в ваше расширение, то это может быть очень полезно при устранении неполадок. В этом случае добавьте к своему лог сообщению проверку на JDEBUG:&lt;br /&gt;
&lt;br /&gt;
    if (JDEBUG) &lt;br /&gt;
    {&lt;br /&gt;
        JLog::add(&#039;my debug message&#039;, JLog::DEBUG, &#039;my-debug-category&#039;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
== Логирование в определённый файл лога == &lt;br /&gt;
Вы можете использовать &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;, чтобы настроить ведение логов в дополнительный файл логов, отфильтровывая сообщения логов по приоритету (уровень серьезности) и / или категории. Параметры &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
# массив с деталями конфигурации - включая имя файла логов&lt;br /&gt;
# уровни серьезности, которые будут логироваться в этом файле&lt;br /&gt;
# массив категорий, которые будут логироваться в этом файле (или если для параметра 4 установлено значение &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;, тогда этот массив определяет категории, которые НЕ должны регистрироваться в файле)&lt;br /&gt;
# (часто пропускается) логическое значение, указывающее, является ли параметр 3 списком включения (по умолчанию P4 = &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;) или списком исключения (P4 = &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Например, если вы разработали расширение &#039;com_helloworld&#039;, вы можете использовать следующее:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.log.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets messages of all log levels to be sent to the file&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
            // The log category/categories which should be recorded in this file&lt;br /&gt;
            // In this case, it&#039;s just the one category from our extension, still&lt;br /&gt;
            // we need to put it inside an array&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Затем, когда вы логируете сообщение, укажите категорию &#039;com_helloworld&#039;, как в примере ниже&lt;br /&gt;
&lt;br /&gt;
    JLog::add(JText::_(&#039;COM_HELLOWORLD_ERROR_MESSAGE_123&#039;), JLog::ERROR, &#039;com_helloworld&#039;);&lt;br /&gt;
&lt;br /&gt;
Это приведет к тому, что ваше сообщение будет записано в com_helloworld.log.php. Если в настройках плагина «Система - Отладка» для параметра «Протоколировать все» задано значение «Да», то это сообщение появится и в общем файле журнала everything.php.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Вы можете объединить это с [[S:MyLanguage/Display error messages and notices|Display error messages and notices]] для отображения видимых уведомлений об ошибках для пользователей.&lt;br /&gt;
&lt;br /&gt;
Вы также можете добавить дополнительный логгер для сбора только критических и аварийных уведомлений:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets critical and emergency log level messages to be sent to the file&lt;br /&gt;
        JLog::CRITICAL + JLog::EMERGENCY,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Вы также можете исключить определенный уровень приоритета от включения в файл логов. Например, чтобы логировать все сообщения кроме DEBUG:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.all_but_debug.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Уровни приоритета &amp;lt;tt&amp;gt;JLog&amp;lt;/tt&amp;gt; реализованы в виде отдельных битов целого числа, поэтому вы можете использовать &#039;&#039;&#039;побитовые&#039;&#039;&#039; операции  (побитовое AND, &amp;amp;; и побитовое NOT, ~) для вычисления подходящих уровней логов. &amp;lt;tt&amp;gt;JLog::All&amp;lt;/tt&amp;gt; является постоянным целым числом, в котором установлены все соответствующие биты, так что включены все уровни приоритета Joomla. &lt;br /&gt;
&lt;br /&gt;
== Форматирование файла лога ==&lt;br /&gt;
&lt;br /&gt;
Первый параметр &amp;lt;tt&amp;gt;addLogger&amp;lt;/tt&amp;gt; может иметь несколько необязательных дополнительных настроек в дополнение к записи &amp;lt;tt&amp;gt;text_file&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, есть параметр &amp;lt;tt&amp;gt;text_entry_format&amp;lt;/tt&amp;gt;, указывающая формат каждой строки в вашем лог файле.&lt;br /&gt;
&lt;br /&gt;
Формат по умолчанию:&lt;br /&gt;
&lt;br /&gt;
    &#039;{DATETIME} {PRIORITY}      {CATEGORY}      {MESSAGE}&#039;&lt;br /&gt;
&lt;br /&gt;
Вот пример другого формата, который показывает, как пропустить категорию:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;,&lt;br /&gt;
             // Sets the format of each line&lt;br /&gt;
             &#039;text_entry_format&#039; =&amp;gt; &#039;{DATETIME} {PRIORITY} {MESSAGE}&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Помимо заполнителей (placeholder), показанных выше в строке по умолчанию, доступны следующие значения:&lt;br /&gt;
&lt;br /&gt;
    {CLIENTIP}      (this is the IP address of the client)&lt;br /&gt;
    {TIME}&lt;br /&gt;
    {DATE}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Существует дополнительный необязательный логический параметр &amp;lt;tt&amp;gt;text_file_no_php&amp;lt;/tt&amp;gt;, который указывает, следует ли добавлять в файл логов обычный префикс:&lt;br /&gt;
&lt;br /&gt;
    #&lt;br /&gt;
    #&amp;lt;?php die(&#039;Forbidden.&#039;);?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Обычно вам не следует устанавливать для этого параметра значение &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;. Файлы логов не должны быть доступны для чтения извне, поскольку они могут предоставить злоумышленникам ценную информацию о вашей системе.&lt;br /&gt;
Изменяйте этот параметр, только если вы знаете, что делаете!&lt;br /&gt;
&lt;br /&gt;
Кроме того, если вы хотите сохранить файл логов где-то еще, а не по пути, указанному в общих настройках Joomla, вы можете изменить параметр &amp;lt;tt&amp;gt;text_file_path&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Логирование в другие места ==&lt;br /&gt;
&lt;br /&gt;
Помимо логирования в файлы, вы также можете логировать в другие места, такие как&lt;br /&gt;
* область сообщений Joomla (сообщение отображается, если вы вызываете &amp;lt;tt&amp;gt;JFactory::getApplication()-&amp;gt;enqueueMessage()&amp;lt;/tt&amp;gt;)&lt;br /&gt;
* таблица базы данных&lt;br /&gt;
* просто echo&lt;br /&gt;
Из них, пожалуй, наиболее полезным является логирование в панель сообщений, которое можно настроить следующим образом:&lt;br /&gt;
     JLog::addLogger(array(&#039;logger&#039; =&amp;gt; &#039;messagequeue&#039;), JLog::ALL, array(&#039;msg-error-cat&#039;));&lt;br /&gt;
Затем, когда вы делаете:&lt;br /&gt;
     JLog::add(&#039;сообщение об ошибке для отображения&#039;, JLog::ERROR, &#039;msg-error-cat&#039;);&lt;br /&gt;
вы получаете сообщение, скопированное на панель сообщений.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Обратите внимание, что код ядра Joomla настраивает запись в очередь сообщений для категории &#039;jerror&#039;, поэтому, если вы используете эту категорию в своих сообщениях журнала, вы получите сообщение, отображаемое на панели сообщений.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
     JLog::add (&#039;ошибка скопирована на панель сообщений&#039;, JLog::ERROR, &#039;jerror&#039;);&lt;br /&gt;
приведет к тому, что сообщение будет отображаться в области сообщений Joomla, даже если вы явно не настроили такое поведение для своего логгера.&lt;br /&gt;
&lt;br /&gt;
== Исключения ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;JLog::add()&amp;lt;/code&amp;gt; кидает исключение, если не может записать в файл логов. Чтобы избежать этого, вам придется либо обернуть вызов в другую функцию, либо реализовать свой собственный класс логгера, а затем включить его:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Use mycustomlogger&lt;br /&gt;
             &#039;logger&#039; =&amp;gt; &#039;mycustomlogger&#039;,&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.errors.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
== Что ещё почитать == &lt;br /&gt;
Логирование в Joomla должно использоваться в тандеме с исключениями PHP, а не в качестве замены. Подробнее в [[S:MyLanguage/Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1|Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]].&lt;br /&gt;
&lt;br /&gt;
Другое руководство (немного устаревшее, но все же полезное) находится по адресу [http://eddify.me/posts/logging-in-joomla-with-jlog.html Logging in Joomla with JLog].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 1.7{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 2.5{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.0{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.x{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/52/ru&amp;diff=587376</id>
		<title>Translations:Using JLog/52/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/52/ru&amp;diff=587376"/>
		<updated>2019-01-16T08:20:01Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Другое руководство (немного устаревшее, но все же полезное) находится по адресу [http://eddify.me/posts/logging-in-joomla-with-jlog.html Logging in Joomla with JLog].&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587375</id>
		<title>Using JLog/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587375"/>
		<updated>2019-01-16T08:19:27Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Обзор ==&lt;br /&gt;
Логирование в Joomla дает вам возможность логировать сообщения в файлы и на экран (в консоли отладки Joomla внизу веб-страницы), а основным классом Joomla, который для этого используется, является JLog. &lt;br /&gt;
&lt;br /&gt;
Логирование, в некоторой степени, может контролироваться динамически через общие настройки Joomla и путем настройки плагина Система - Отладка (поставляется с Joomla). В целом эти возможности позволяют вам:&lt;br /&gt;
* включать или отключать систему отладки - чтобы вы не потребляли ресурсы без необходимости, но при этом у вас оставалась информация, чтобы помочь в устранении неполадок, когда есть проблемы. Например, на живом сайте, на котором установлено ваше расширение.&lt;br /&gt;
* направлять сообщения логов в определенный файл логов вашего собственного расширения&lt;br /&gt;
* просматривать сообщения логов в консоли отладки - вы можете выбрать группу пользователей, для которых должны отображаться сообщения логов, чтобы на живом сайте разработчики могли видеть сообщения, в то время как другие пользователи не затрагивались.&lt;br /&gt;
* фильтровать сообщения консоли отладки по приоритету (например, INFO, DEBUG, WARNING и т. д.) и по категориям (вы можете сами определять свои категории).&lt;br /&gt;
Кроме того, сообщения логов могут быть переведены на разные языки. &lt;br /&gt;
&lt;br /&gt;
Основные параметры конфигурации, относящиеся к ведению логов, показаны ниже.&lt;br /&gt;
&lt;br /&gt;
Включение отладки и отображение консоли отладки Joomla контролируется через общие настройки.&lt;br /&gt;
[[File:Global conf debug-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Логирование в общий файл логов контролируется с помощью вкладки Журнал (логи) конфигурации плагина Joomla Система - Отладка (в меню администратора нажмите «Расширения / Плагины», найдите плагин «Система - Отладка» и нажмите на него, чтобы изменить его настраиваемые параметры). &lt;br /&gt;
[[File:Debug logging settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Параметры на вкладке &amp;quot;Плагин&amp;quot; контролируют отображение в консоли отладки Joomla.&lt;br /&gt;
[[File:Debug plugin settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Базовое логирование в файл ==&lt;br /&gt;
&lt;br /&gt;
Чтобы залогировать сообщение, используйте функцию &amp;lt;tt&amp;gt;JLog::add()&amp;lt;/tt&amp;gt;. Например:&lt;br /&gt;
&lt;br /&gt;
    JLog::add(&#039;my error message&#039;, JLog::ERROR, &#039;my-error-category&#039;);&lt;br /&gt;
&lt;br /&gt;
Параметры&lt;br /&gt;
# Строка сообщения. Вы можете использовать перевод с этими значениями, например, &amp;lt;tt&amp;gt;JText::_(&#039;MY_EXTENSION_ERR_MSG&#039;)&amp;lt;/tt&amp;gt;. Вы также можете отображать значения переменных при условии, что вы конвертируете их в строковый формат (например, с помощью &amp;lt;tt&amp;gt;__toString ()&amp;lt;/tt&amp;gt;, если тип переменной это поддерживает). &lt;br /&gt;
# Приоритет, который может быть одним из: JLog::EMERGENCY, JLog::ALERT, JLog::CRITICAL, JLog::ERROR, JLog::WARNING, JLog::NOTICE, JLog::INFO, JLog::DEBUG (основано на уровнях серьёзности syslog / RFC 5424 – подробнее на [https://ru.wikipedia.org/wiki/Syslog материал Wikipedia о syslog]).&lt;br /&gt;
# Категория, которая является просто текстовой строкой. Вы можете определить любые категории, которые вам нравятся, и лучше всего определять их, чтобы избежать возможных конфликтов с другими расширениями. &lt;br /&gt;
&lt;br /&gt;
Если вы включите диагностические сообщения отладки в ваше расширение, то это может быть очень полезно при устранении неполадок. В этом случае добавьте к своему лог сообщению проверку на JDEBUG:&lt;br /&gt;
&lt;br /&gt;
    if (JDEBUG) &lt;br /&gt;
    {&lt;br /&gt;
        JLog::add(&#039;my debug message&#039;, JLog::DEBUG, &#039;my-debug-category&#039;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
== Логирование в определённый файл лога == &lt;br /&gt;
Вы можете использовать &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;, чтобы настроить ведение логов в дополнительный файл логов, отфильтровывая сообщения логов по приоритету (уровень серьезности) и / или категории. Параметры &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
# массив с деталями конфигурации - включая имя файла логов&lt;br /&gt;
# уровни серьезности, которые будут логироваться в этом файле&lt;br /&gt;
# массив категорий, которые будут логироваться в этом файле (или если для параметра 4 установлено значение &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;, тогда этот массив определяет категории, которые НЕ должны регистрироваться в файле)&lt;br /&gt;
# (часто пропускается) логическое значение, указывающее, является ли параметр 3 списком включения (по умолчанию P4 = &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;) или списком исключения (P4 = &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Например, если вы разработали расширение &#039;com_helloworld&#039;, вы можете использовать следующее:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.log.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets messages of all log levels to be sent to the file&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
            // The log category/categories which should be recorded in this file&lt;br /&gt;
            // In this case, it&#039;s just the one category from our extension, still&lt;br /&gt;
            // we need to put it inside an array&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Затем, когда вы логируете сообщение, укажите категорию &#039;com_helloworld&#039;, как в примере ниже&lt;br /&gt;
&lt;br /&gt;
    JLog::add(JText::_(&#039;COM_HELLOWORLD_ERROR_MESSAGE_123&#039;), JLog::ERROR, &#039;com_helloworld&#039;);&lt;br /&gt;
&lt;br /&gt;
Это приведет к тому, что ваше сообщение будет записано в com_helloworld.log.php. Если в настройках плагина «Система - Отладка» для параметра «Протоколировать все» задано значение «Да», то это сообщение появится и в общем файле журнала everything.php.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Вы можете объединить это с [[S:MyLanguage/Display error messages and notices|Display error messages and notices]] для отображения видимых уведомлений об ошибках для пользователей.&lt;br /&gt;
&lt;br /&gt;
Вы также можете добавить дополнительный логгер для сбора только критических и аварийных уведомлений:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets critical and emergency log level messages to be sent to the file&lt;br /&gt;
        JLog::CRITICAL + JLog::EMERGENCY,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Вы также можете исключить определенный уровень приоритета от включения в файл логов. Например, чтобы логировать все сообщения кроме DEBUG:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.all_but_debug.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Уровни приоритета &amp;lt;tt&amp;gt;JLog&amp;lt;/tt&amp;gt; реализованы в виде отдельных битов целого числа, поэтому вы можете использовать &#039;&#039;&#039;побитовые&#039;&#039;&#039; операции  (побитовое AND, &amp;amp;; и побитовое NOT, ~) для вычисления подходящих уровней логов. &amp;lt;tt&amp;gt;JLog::All&amp;lt;/tt&amp;gt; является постоянным целым числом, в котором установлены все соответствующие биты, так что включены все уровни приоритета Joomla. &lt;br /&gt;
&lt;br /&gt;
== Форматирование файла лога ==&lt;br /&gt;
&lt;br /&gt;
Первый параметр &amp;lt;tt&amp;gt;addLogger&amp;lt;/tt&amp;gt; может иметь несколько необязательных дополнительных настроек в дополнение к записи &amp;lt;tt&amp;gt;text_file&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, есть параметр &amp;lt;tt&amp;gt;text_entry_format&amp;lt;/tt&amp;gt;, указывающая формат каждой строки в вашем лог файле.&lt;br /&gt;
&lt;br /&gt;
Формат по умолчанию:&lt;br /&gt;
&lt;br /&gt;
    &#039;{DATETIME} {PRIORITY}      {CATEGORY}      {MESSAGE}&#039;&lt;br /&gt;
&lt;br /&gt;
Вот пример другого формата, который показывает, как пропустить категорию:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;,&lt;br /&gt;
             // Sets the format of each line&lt;br /&gt;
             &#039;text_entry_format&#039; =&amp;gt; &#039;{DATETIME} {PRIORITY} {MESSAGE}&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Помимо заполнителей (placeholder), показанных выше в строке по умолчанию, доступны следующие значения:&lt;br /&gt;
&lt;br /&gt;
    {CLIENTIP}      (this is the IP address of the client)&lt;br /&gt;
    {TIME}&lt;br /&gt;
    {DATE}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Существует дополнительный необязательный логический параметр &amp;lt;tt&amp;gt;text_file_no_php&amp;lt;/tt&amp;gt;, который указывает, следует ли добавлять в файл логов обычный префикс:&lt;br /&gt;
&lt;br /&gt;
    #&lt;br /&gt;
    #&amp;lt;?php die(&#039;Forbidden.&#039;);?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Обычно вам не следует устанавливать для этого параметра значение &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;. Файлы логов не должны быть доступны для чтения извне, поскольку они могут предоставить злоумышленникам ценную информацию о вашей системе.&lt;br /&gt;
Изменяйте этот параметр, только если вы знаете, что делаете!&lt;br /&gt;
&lt;br /&gt;
Кроме того, если вы хотите сохранить файл логов где-то еще, а не по пути, указанному в общих настройках Joomla, вы можете изменить параметр &amp;lt;tt&amp;gt;text_file_path&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Логирование в другие места ==&lt;br /&gt;
&lt;br /&gt;
Помимо логирования в файлы, вы также можете логировать в другие места, такие как&lt;br /&gt;
* область сообщений Joomla (сообщение отображается, если вы вызываете &amp;lt;tt&amp;gt;JFactory::getApplication()-&amp;gt;enqueueMessage()&amp;lt;/tt&amp;gt;)&lt;br /&gt;
* таблица базы данных&lt;br /&gt;
* просто echo&lt;br /&gt;
Из них, пожалуй, наиболее полезным является логирование в панель сообщений, которое можно настроить следующим образом:&lt;br /&gt;
     JLog::addLogger(array(&#039;logger&#039; =&amp;gt; &#039;messagequeue&#039;), JLog::ALL, array(&#039;msg-error-cat&#039;));&lt;br /&gt;
Затем, когда вы делаете:&lt;br /&gt;
     JLog::add(&#039;сообщение об ошибке для отображения&#039;, JLog::ERROR, &#039;msg-error-cat&#039;);&lt;br /&gt;
вы получаете сообщение, скопированное на панель сообщений.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Обратите внимание, что код ядра Joomla настраивает запись в очередь сообщений для категории &#039;jerror&#039;, поэтому, если вы используете эту категорию в своих сообщениях журнала, вы получите сообщение, отображаемое на панели сообщений.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
     JLog::add (&#039;ошибка скопирована на панель сообщений&#039;, JLog::ERROR, &#039;jerror&#039;);&lt;br /&gt;
приведет к тому, что сообщение будет отображаться в области сообщений Joomla, даже если вы явно не настроили такое поведение для своего логгера.&lt;br /&gt;
&lt;br /&gt;
== Исключения ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;JLog::add()&amp;lt;/code&amp;gt; кидает исключение, если не может записать в файл логов. Чтобы избежать этого, вам придется либо обернуть вызов в другую функцию, либо реализовать свой собственный класс логгера, а затем включить его:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Use mycustomlogger&lt;br /&gt;
             &#039;logger&#039; =&amp;gt; &#039;mycustomlogger&#039;,&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.errors.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
== Что ещё почитать == &lt;br /&gt;
Логирование в Joomla должно использоваться в тандеме с исключениями PHP, а не в качестве замены. Подробнее в [[S:MyLanguage/Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1|Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]].&lt;br /&gt;
&lt;br /&gt;
Another tutorial (a little out of date, but still useful) is at [http://eddify.me/posts/logging-in-joomla-with-jlog.html Logging in Joomla with JLog].&lt;br /&gt;
Другое руководство (немного устаревшее, но все же полезное) находится по адресу [http://eddify.me/posts/logging-in-joomla-with-jlog.html Logging in Joomla with JLog].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 1.7{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 2.5{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.0{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.x{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/49/ru&amp;diff=587374</id>
		<title>Translations:Using JLog/49/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/49/ru&amp;diff=587374"/>
		<updated>2019-01-16T08:19:27Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Обратите внимание, что код ядра Joomla настраивает запись в очередь сообщений для категории &#039;jerror&#039;, поэтому, если вы используете эту категорию в своих сообщениях журнала, вы получите сообщение, отображаемое на панели сообщений.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
     JLog::add (&#039;ошибка скопирована на панель сообщений&#039;, JLog::ERROR, &#039;jerror&#039;);&lt;br /&gt;
приведет к тому, что сообщение будет отображаться в области сообщений Joomla, даже если вы явно не настроили такое поведение для своего логгера.&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587373</id>
		<title>Using JLog/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587373"/>
		<updated>2019-01-16T08:19:11Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Обзор ==&lt;br /&gt;
Логирование в Joomla дает вам возможность логировать сообщения в файлы и на экран (в консоли отладки Joomla внизу веб-страницы), а основным классом Joomla, который для этого используется, является JLog. &lt;br /&gt;
&lt;br /&gt;
Логирование, в некоторой степени, может контролироваться динамически через общие настройки Joomla и путем настройки плагина Система - Отладка (поставляется с Joomla). В целом эти возможности позволяют вам:&lt;br /&gt;
* включать или отключать систему отладки - чтобы вы не потребляли ресурсы без необходимости, но при этом у вас оставалась информация, чтобы помочь в устранении неполадок, когда есть проблемы. Например, на живом сайте, на котором установлено ваше расширение.&lt;br /&gt;
* направлять сообщения логов в определенный файл логов вашего собственного расширения&lt;br /&gt;
* просматривать сообщения логов в консоли отладки - вы можете выбрать группу пользователей, для которых должны отображаться сообщения логов, чтобы на живом сайте разработчики могли видеть сообщения, в то время как другие пользователи не затрагивались.&lt;br /&gt;
* фильтровать сообщения консоли отладки по приоритету (например, INFO, DEBUG, WARNING и т. д.) и по категориям (вы можете сами определять свои категории).&lt;br /&gt;
Кроме того, сообщения логов могут быть переведены на разные языки. &lt;br /&gt;
&lt;br /&gt;
Основные параметры конфигурации, относящиеся к ведению логов, показаны ниже.&lt;br /&gt;
&lt;br /&gt;
Включение отладки и отображение консоли отладки Joomla контролируется через общие настройки.&lt;br /&gt;
[[File:Global conf debug-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Логирование в общий файл логов контролируется с помощью вкладки Журнал (логи) конфигурации плагина Joomla Система - Отладка (в меню администратора нажмите «Расширения / Плагины», найдите плагин «Система - Отладка» и нажмите на него, чтобы изменить его настраиваемые параметры). &lt;br /&gt;
[[File:Debug logging settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Параметры на вкладке &amp;quot;Плагин&amp;quot; контролируют отображение в консоли отладки Joomla.&lt;br /&gt;
[[File:Debug plugin settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Базовое логирование в файл ==&lt;br /&gt;
&lt;br /&gt;
Чтобы залогировать сообщение, используйте функцию &amp;lt;tt&amp;gt;JLog::add()&amp;lt;/tt&amp;gt;. Например:&lt;br /&gt;
&lt;br /&gt;
    JLog::add(&#039;my error message&#039;, JLog::ERROR, &#039;my-error-category&#039;);&lt;br /&gt;
&lt;br /&gt;
Параметры&lt;br /&gt;
# Строка сообщения. Вы можете использовать перевод с этими значениями, например, &amp;lt;tt&amp;gt;JText::_(&#039;MY_EXTENSION_ERR_MSG&#039;)&amp;lt;/tt&amp;gt;. Вы также можете отображать значения переменных при условии, что вы конвертируете их в строковый формат (например, с помощью &amp;lt;tt&amp;gt;__toString ()&amp;lt;/tt&amp;gt;, если тип переменной это поддерживает). &lt;br /&gt;
# Приоритет, который может быть одним из: JLog::EMERGENCY, JLog::ALERT, JLog::CRITICAL, JLog::ERROR, JLog::WARNING, JLog::NOTICE, JLog::INFO, JLog::DEBUG (основано на уровнях серьёзности syslog / RFC 5424 – подробнее на [https://ru.wikipedia.org/wiki/Syslog материал Wikipedia о syslog]).&lt;br /&gt;
# Категория, которая является просто текстовой строкой. Вы можете определить любые категории, которые вам нравятся, и лучше всего определять их, чтобы избежать возможных конфликтов с другими расширениями. &lt;br /&gt;
&lt;br /&gt;
Если вы включите диагностические сообщения отладки в ваше расширение, то это может быть очень полезно при устранении неполадок. В этом случае добавьте к своему лог сообщению проверку на JDEBUG:&lt;br /&gt;
&lt;br /&gt;
    if (JDEBUG) &lt;br /&gt;
    {&lt;br /&gt;
        JLog::add(&#039;my debug message&#039;, JLog::DEBUG, &#039;my-debug-category&#039;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
== Логирование в определённый файл лога == &lt;br /&gt;
Вы можете использовать &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;, чтобы настроить ведение логов в дополнительный файл логов, отфильтровывая сообщения логов по приоритету (уровень серьезности) и / или категории. Параметры &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
# массив с деталями конфигурации - включая имя файла логов&lt;br /&gt;
# уровни серьезности, которые будут логироваться в этом файле&lt;br /&gt;
# массив категорий, которые будут логироваться в этом файле (или если для параметра 4 установлено значение &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;, тогда этот массив определяет категории, которые НЕ должны регистрироваться в файле)&lt;br /&gt;
# (часто пропускается) логическое значение, указывающее, является ли параметр 3 списком включения (по умолчанию P4 = &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;) или списком исключения (P4 = &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Например, если вы разработали расширение &#039;com_helloworld&#039;, вы можете использовать следующее:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.log.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets messages of all log levels to be sent to the file&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
            // The log category/categories which should be recorded in this file&lt;br /&gt;
            // In this case, it&#039;s just the one category from our extension, still&lt;br /&gt;
            // we need to put it inside an array&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Затем, когда вы логируете сообщение, укажите категорию &#039;com_helloworld&#039;, как в примере ниже&lt;br /&gt;
&lt;br /&gt;
    JLog::add(JText::_(&#039;COM_HELLOWORLD_ERROR_MESSAGE_123&#039;), JLog::ERROR, &#039;com_helloworld&#039;);&lt;br /&gt;
&lt;br /&gt;
Это приведет к тому, что ваше сообщение будет записано в com_helloworld.log.php. Если в настройках плагина «Система - Отладка» для параметра «Протоколировать все» задано значение «Да», то это сообщение появится и в общем файле журнала everything.php.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Вы можете объединить это с [[S:MyLanguage/Display error messages and notices|Display error messages and notices]] для отображения видимых уведомлений об ошибках для пользователей.&lt;br /&gt;
&lt;br /&gt;
Вы также можете добавить дополнительный логгер для сбора только критических и аварийных уведомлений:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets critical and emergency log level messages to be sent to the file&lt;br /&gt;
        JLog::CRITICAL + JLog::EMERGENCY,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Вы также можете исключить определенный уровень приоритета от включения в файл логов. Например, чтобы логировать все сообщения кроме DEBUG:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.all_but_debug.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Уровни приоритета &amp;lt;tt&amp;gt;JLog&amp;lt;/tt&amp;gt; реализованы в виде отдельных битов целого числа, поэтому вы можете использовать &#039;&#039;&#039;побитовые&#039;&#039;&#039; операции  (побитовое AND, &amp;amp;; и побитовое NOT, ~) для вычисления подходящих уровней логов. &amp;lt;tt&amp;gt;JLog::All&amp;lt;/tt&amp;gt; является постоянным целым числом, в котором установлены все соответствующие биты, так что включены все уровни приоритета Joomla. &lt;br /&gt;
&lt;br /&gt;
== Форматирование файла лога ==&lt;br /&gt;
&lt;br /&gt;
Первый параметр &amp;lt;tt&amp;gt;addLogger&amp;lt;/tt&amp;gt; может иметь несколько необязательных дополнительных настроек в дополнение к записи &amp;lt;tt&amp;gt;text_file&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, есть параметр &amp;lt;tt&amp;gt;text_entry_format&amp;lt;/tt&amp;gt;, указывающая формат каждой строки в вашем лог файле.&lt;br /&gt;
&lt;br /&gt;
Формат по умолчанию:&lt;br /&gt;
&lt;br /&gt;
    &#039;{DATETIME} {PRIORITY}      {CATEGORY}      {MESSAGE}&#039;&lt;br /&gt;
&lt;br /&gt;
Вот пример другого формата, который показывает, как пропустить категорию:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;,&lt;br /&gt;
             // Sets the format of each line&lt;br /&gt;
             &#039;text_entry_format&#039; =&amp;gt; &#039;{DATETIME} {PRIORITY} {MESSAGE}&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Помимо заполнителей (placeholder), показанных выше в строке по умолчанию, доступны следующие значения:&lt;br /&gt;
&lt;br /&gt;
    {CLIENTIP}      (this is the IP address of the client)&lt;br /&gt;
    {TIME}&lt;br /&gt;
    {DATE}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Существует дополнительный необязательный логический параметр &amp;lt;tt&amp;gt;text_file_no_php&amp;lt;/tt&amp;gt;, который указывает, следует ли добавлять в файл логов обычный префикс:&lt;br /&gt;
&lt;br /&gt;
    #&lt;br /&gt;
    #&amp;lt;?php die(&#039;Forbidden.&#039;);?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Обычно вам не следует устанавливать для этого параметра значение &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;. Файлы логов не должны быть доступны для чтения извне, поскольку они могут предоставить злоумышленникам ценную информацию о вашей системе.&lt;br /&gt;
Изменяйте этот параметр, только если вы знаете, что делаете!&lt;br /&gt;
&lt;br /&gt;
Кроме того, если вы хотите сохранить файл логов где-то еще, а не по пути, указанному в общих настройках Joomla, вы можете изменить параметр &amp;lt;tt&amp;gt;text_file_path&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Логирование в другие места ==&lt;br /&gt;
&lt;br /&gt;
Помимо логирования в файлы, вы также можете логировать в другие места, такие как&lt;br /&gt;
* область сообщений Joomla (сообщение отображается, если вы вызываете &amp;lt;tt&amp;gt;JFactory::getApplication()-&amp;gt;enqueueMessage()&amp;lt;/tt&amp;gt;)&lt;br /&gt;
* таблица базы данных&lt;br /&gt;
* просто echo&lt;br /&gt;
Из них, пожалуй, наиболее полезным является логирование в панель сообщений, которое можно настроить следующим образом:&lt;br /&gt;
     JLog::addLogger(array(&#039;logger&#039; =&amp;gt; &#039;messagequeue&#039;), JLog::ALL, array(&#039;msg-error-cat&#039;));&lt;br /&gt;
Затем, когда вы делаете:&lt;br /&gt;
     JLog::add(&#039;сообщение об ошибке для отображения&#039;, JLog::ERROR, &#039;msg-error-cat&#039;);&lt;br /&gt;
вы получаете сообщение, скопированное на панель сообщений.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Обратите внимание, что код ядра Joomla настраивает запись в очередь сообщений для категории &#039;jerror&#039;, поэтому, если вы используете эту категорию в своих сообщениях журнала, вы получите сообщение, отображаемое на панели сообщений.&#039;&#039;&#039; Например:&lt;br /&gt;
     JLog::add (&#039;ошибка скопирована на панель сообщений&#039;, JLog::ERROR, &#039;jerror&#039;);&lt;br /&gt;
приведет к тому, что сообщение будет отображаться в области сообщений Joomla, даже если вы явно не настроили такое поведение для своего логгера.&lt;br /&gt;
&lt;br /&gt;
== Исключения ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;JLog::add()&amp;lt;/code&amp;gt; кидает исключение, если не может записать в файл логов. Чтобы избежать этого, вам придется либо обернуть вызов в другую функцию, либо реализовать свой собственный класс логгера, а затем включить его:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Use mycustomlogger&lt;br /&gt;
             &#039;logger&#039; =&amp;gt; &#039;mycustomlogger&#039;,&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.errors.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
== Что ещё почитать == &lt;br /&gt;
Логирование в Joomla должно использоваться в тандеме с исключениями PHP, а не в качестве замены. Подробнее в [[S:MyLanguage/Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1|Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]].&lt;br /&gt;
&lt;br /&gt;
Another tutorial (a little out of date, but still useful) is at [http://eddify.me/posts/logging-in-joomla-with-jlog.html Logging in Joomla with JLog].&lt;br /&gt;
Другое руководство (немного устаревшее, но все же полезное) находится по адресу [http://eddify.me/posts/logging-in-joomla-with-jlog.html Logging in Joomla with JLog].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 1.7{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 2.5{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.0{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.x{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/49/ru&amp;diff=587372</id>
		<title>Translations:Using JLog/49/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/49/ru&amp;diff=587372"/>
		<updated>2019-01-16T08:19:11Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Обратите внимание, что код ядра Joomla настраивает запись в очередь сообщений для категории &#039;jerror&#039;, поэтому, если вы используете эту категорию в своих сообщениях журнала, вы получите сообщение, отображаемое на панели сообщений.&#039;&#039;&#039; Например:&lt;br /&gt;
     JLog::add (&#039;ошибка скопирована на панель сообщений&#039;, JLog::ERROR, &#039;jerror&#039;);&lt;br /&gt;
приведет к тому, что сообщение будет отображаться в области сообщений Joomla, даже если вы явно не настроили такое поведение для своего логгера.&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587371</id>
		<title>Using JLog/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587371"/>
		<updated>2019-01-16T08:18:53Z</updated>

		<summary type="html">&lt;p&gt;B2z: Created page with &amp;quot;Например,      JLog::add (&amp;#039;ошибка скопирована на панель сообщений&amp;#039;, JLog::ERROR, &amp;#039;jerror&amp;#039;); приведет к тому, что со...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Обзор ==&lt;br /&gt;
Логирование в Joomla дает вам возможность логировать сообщения в файлы и на экран (в консоли отладки Joomla внизу веб-страницы), а основным классом Joomla, который для этого используется, является JLog. &lt;br /&gt;
&lt;br /&gt;
Логирование, в некоторой степени, может контролироваться динамически через общие настройки Joomla и путем настройки плагина Система - Отладка (поставляется с Joomla). В целом эти возможности позволяют вам:&lt;br /&gt;
* включать или отключать систему отладки - чтобы вы не потребляли ресурсы без необходимости, но при этом у вас оставалась информация, чтобы помочь в устранении неполадок, когда есть проблемы. Например, на живом сайте, на котором установлено ваше расширение.&lt;br /&gt;
* направлять сообщения логов в определенный файл логов вашего собственного расширения&lt;br /&gt;
* просматривать сообщения логов в консоли отладки - вы можете выбрать группу пользователей, для которых должны отображаться сообщения логов, чтобы на живом сайте разработчики могли видеть сообщения, в то время как другие пользователи не затрагивались.&lt;br /&gt;
* фильтровать сообщения консоли отладки по приоритету (например, INFO, DEBUG, WARNING и т. д.) и по категориям (вы можете сами определять свои категории).&lt;br /&gt;
Кроме того, сообщения логов могут быть переведены на разные языки. &lt;br /&gt;
&lt;br /&gt;
Основные параметры конфигурации, относящиеся к ведению логов, показаны ниже.&lt;br /&gt;
&lt;br /&gt;
Включение отладки и отображение консоли отладки Joomla контролируется через общие настройки.&lt;br /&gt;
[[File:Global conf debug-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Логирование в общий файл логов контролируется с помощью вкладки Журнал (логи) конфигурации плагина Joomla Система - Отладка (в меню администратора нажмите «Расширения / Плагины», найдите плагин «Система - Отладка» и нажмите на него, чтобы изменить его настраиваемые параметры). &lt;br /&gt;
[[File:Debug logging settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Параметры на вкладке &amp;quot;Плагин&amp;quot; контролируют отображение в консоли отладки Joomla.&lt;br /&gt;
[[File:Debug plugin settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Базовое логирование в файл ==&lt;br /&gt;
&lt;br /&gt;
Чтобы залогировать сообщение, используйте функцию &amp;lt;tt&amp;gt;JLog::add()&amp;lt;/tt&amp;gt;. Например:&lt;br /&gt;
&lt;br /&gt;
    JLog::add(&#039;my error message&#039;, JLog::ERROR, &#039;my-error-category&#039;);&lt;br /&gt;
&lt;br /&gt;
Параметры&lt;br /&gt;
# Строка сообщения. Вы можете использовать перевод с этими значениями, например, &amp;lt;tt&amp;gt;JText::_(&#039;MY_EXTENSION_ERR_MSG&#039;)&amp;lt;/tt&amp;gt;. Вы также можете отображать значения переменных при условии, что вы конвертируете их в строковый формат (например, с помощью &amp;lt;tt&amp;gt;__toString ()&amp;lt;/tt&amp;gt;, если тип переменной это поддерживает). &lt;br /&gt;
# Приоритет, который может быть одним из: JLog::EMERGENCY, JLog::ALERT, JLog::CRITICAL, JLog::ERROR, JLog::WARNING, JLog::NOTICE, JLog::INFO, JLog::DEBUG (основано на уровнях серьёзности syslog / RFC 5424 – подробнее на [https://ru.wikipedia.org/wiki/Syslog материал Wikipedia о syslog]).&lt;br /&gt;
# Категория, которая является просто текстовой строкой. Вы можете определить любые категории, которые вам нравятся, и лучше всего определять их, чтобы избежать возможных конфликтов с другими расширениями. &lt;br /&gt;
&lt;br /&gt;
Если вы включите диагностические сообщения отладки в ваше расширение, то это может быть очень полезно при устранении неполадок. В этом случае добавьте к своему лог сообщению проверку на JDEBUG:&lt;br /&gt;
&lt;br /&gt;
    if (JDEBUG) &lt;br /&gt;
    {&lt;br /&gt;
        JLog::add(&#039;my debug message&#039;, JLog::DEBUG, &#039;my-debug-category&#039;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
== Логирование в определённый файл лога == &lt;br /&gt;
Вы можете использовать &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;, чтобы настроить ведение логов в дополнительный файл логов, отфильтровывая сообщения логов по приоритету (уровень серьезности) и / или категории. Параметры &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
# массив с деталями конфигурации - включая имя файла логов&lt;br /&gt;
# уровни серьезности, которые будут логироваться в этом файле&lt;br /&gt;
# массив категорий, которые будут логироваться в этом файле (или если для параметра 4 установлено значение &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;, тогда этот массив определяет категории, которые НЕ должны регистрироваться в файле)&lt;br /&gt;
# (часто пропускается) логическое значение, указывающее, является ли параметр 3 списком включения (по умолчанию P4 = &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;) или списком исключения (P4 = &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Например, если вы разработали расширение &#039;com_helloworld&#039;, вы можете использовать следующее:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.log.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets messages of all log levels to be sent to the file&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
            // The log category/categories which should be recorded in this file&lt;br /&gt;
            // In this case, it&#039;s just the one category from our extension, still&lt;br /&gt;
            // we need to put it inside an array&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Затем, когда вы логируете сообщение, укажите категорию &#039;com_helloworld&#039;, как в примере ниже&lt;br /&gt;
&lt;br /&gt;
    JLog::add(JText::_(&#039;COM_HELLOWORLD_ERROR_MESSAGE_123&#039;), JLog::ERROR, &#039;com_helloworld&#039;);&lt;br /&gt;
&lt;br /&gt;
Это приведет к тому, что ваше сообщение будет записано в com_helloworld.log.php. Если в настройках плагина «Система - Отладка» для параметра «Протоколировать все» задано значение «Да», то это сообщение появится и в общем файле журнала everything.php.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Вы можете объединить это с [[S:MyLanguage/Display error messages and notices|Display error messages and notices]] для отображения видимых уведомлений об ошибках для пользователей.&lt;br /&gt;
&lt;br /&gt;
Вы также можете добавить дополнительный логгер для сбора только критических и аварийных уведомлений:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets critical and emergency log level messages to be sent to the file&lt;br /&gt;
        JLog::CRITICAL + JLog::EMERGENCY,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Вы также можете исключить определенный уровень приоритета от включения в файл логов. Например, чтобы логировать все сообщения кроме DEBUG:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.all_but_debug.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Уровни приоритета &amp;lt;tt&amp;gt;JLog&amp;lt;/tt&amp;gt; реализованы в виде отдельных битов целого числа, поэтому вы можете использовать &#039;&#039;&#039;побитовые&#039;&#039;&#039; операции  (побитовое AND, &amp;amp;; и побитовое NOT, ~) для вычисления подходящих уровней логов. &amp;lt;tt&amp;gt;JLog::All&amp;lt;/tt&amp;gt; является постоянным целым числом, в котором установлены все соответствующие биты, так что включены все уровни приоритета Joomla. &lt;br /&gt;
&lt;br /&gt;
== Форматирование файла лога ==&lt;br /&gt;
&lt;br /&gt;
Первый параметр &amp;lt;tt&amp;gt;addLogger&amp;lt;/tt&amp;gt; может иметь несколько необязательных дополнительных настроек в дополнение к записи &amp;lt;tt&amp;gt;text_file&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, есть параметр &amp;lt;tt&amp;gt;text_entry_format&amp;lt;/tt&amp;gt;, указывающая формат каждой строки в вашем лог файле.&lt;br /&gt;
&lt;br /&gt;
Формат по умолчанию:&lt;br /&gt;
&lt;br /&gt;
    &#039;{DATETIME} {PRIORITY}      {CATEGORY}      {MESSAGE}&#039;&lt;br /&gt;
&lt;br /&gt;
Вот пример другого формата, который показывает, как пропустить категорию:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;,&lt;br /&gt;
             // Sets the format of each line&lt;br /&gt;
             &#039;text_entry_format&#039; =&amp;gt; &#039;{DATETIME} {PRIORITY} {MESSAGE}&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Помимо заполнителей (placeholder), показанных выше в строке по умолчанию, доступны следующие значения:&lt;br /&gt;
&lt;br /&gt;
    {CLIENTIP}      (this is the IP address of the client)&lt;br /&gt;
    {TIME}&lt;br /&gt;
    {DATE}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Существует дополнительный необязательный логический параметр &amp;lt;tt&amp;gt;text_file_no_php&amp;lt;/tt&amp;gt;, который указывает, следует ли добавлять в файл логов обычный префикс:&lt;br /&gt;
&lt;br /&gt;
    #&lt;br /&gt;
    #&amp;lt;?php die(&#039;Forbidden.&#039;);?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Обычно вам не следует устанавливать для этого параметра значение &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;. Файлы логов не должны быть доступны для чтения извне, поскольку они могут предоставить злоумышленникам ценную информацию о вашей системе.&lt;br /&gt;
Изменяйте этот параметр, только если вы знаете, что делаете!&lt;br /&gt;
&lt;br /&gt;
Кроме того, если вы хотите сохранить файл логов где-то еще, а не по пути, указанному в общих настройках Joomla, вы можете изменить параметр &amp;lt;tt&amp;gt;text_file_path&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Логирование в другие места ==&lt;br /&gt;
&lt;br /&gt;
Помимо логирования в файлы, вы также можете логировать в другие места, такие как&lt;br /&gt;
* область сообщений Joomla (сообщение отображается, если вы вызываете &amp;lt;tt&amp;gt;JFactory::getApplication()-&amp;gt;enqueueMessage()&amp;lt;/tt&amp;gt;)&lt;br /&gt;
* таблица базы данных&lt;br /&gt;
* просто echo&lt;br /&gt;
Из них, пожалуй, наиболее полезным является логирование в панель сообщений, которое можно настроить следующим образом:&lt;br /&gt;
     JLog::addLogger(array(&#039;logger&#039; =&amp;gt; &#039;messagequeue&#039;), JLog::ALL, array(&#039;msg-error-cat&#039;));&lt;br /&gt;
Затем, когда вы делаете:&lt;br /&gt;
     JLog::add(&#039;сообщение об ошибке для отображения&#039;, JLog::ERROR, &#039;msg-error-cat&#039;);&lt;br /&gt;
вы получаете сообщение, скопированное на панель сообщений.&lt;br /&gt;
&lt;br /&gt;
Например,&lt;br /&gt;
     JLog::add (&#039;ошибка скопирована на панель сообщений&#039;, JLog::ERROR, &#039;jerror&#039;);&lt;br /&gt;
приведет к тому, что сообщение будет отображаться в области сообщений Joomla, даже если вы явно не настроили такое поведение для своего логгера.&lt;br /&gt;
&lt;br /&gt;
== Исключения ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;JLog::add()&amp;lt;/code&amp;gt; кидает исключение, если не может записать в файл логов. Чтобы избежать этого, вам придется либо обернуть вызов в другую функцию, либо реализовать свой собственный класс логгера, а затем включить его:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Use mycustomlogger&lt;br /&gt;
             &#039;logger&#039; =&amp;gt; &#039;mycustomlogger&#039;,&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.errors.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
== Что ещё почитать == &lt;br /&gt;
Логирование в Joomla должно использоваться в тандеме с исключениями PHP, а не в качестве замены. Подробнее в [[S:MyLanguage/Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1|Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]].&lt;br /&gt;
&lt;br /&gt;
Another tutorial (a little out of date, but still useful) is at [http://eddify.me/posts/logging-in-joomla-with-jlog.html Logging in Joomla with JLog].&lt;br /&gt;
Другое руководство (немного устаревшее, но все же полезное) находится по адресу [http://eddify.me/posts/logging-in-joomla-with-jlog.html Logging in Joomla with JLog].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 1.7{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 2.5{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.0{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.x{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/49/ru&amp;diff=587370</id>
		<title>Translations:Using JLog/49/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/49/ru&amp;diff=587370"/>
		<updated>2019-01-16T08:18:53Z</updated>

		<summary type="html">&lt;p&gt;B2z: Created page with &amp;quot;Например,      JLog::add (&amp;#039;ошибка скопирована на панель сообщений&amp;#039;, JLog::ERROR, &amp;#039;jerror&amp;#039;); приведет к тому, что со...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Например,&lt;br /&gt;
     JLog::add (&#039;ошибка скопирована на панель сообщений&#039;, JLog::ERROR, &#039;jerror&#039;);&lt;br /&gt;
приведет к тому, что сообщение будет отображаться в области сообщений Joomla, даже если вы явно не настроили такое поведение для своего логгера.&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587369</id>
		<title>Using JLog/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587369"/>
		<updated>2019-01-16T08:18:17Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Обзор ==&lt;br /&gt;
Логирование в Joomla дает вам возможность логировать сообщения в файлы и на экран (в консоли отладки Joomla внизу веб-страницы), а основным классом Joomla, который для этого используется, является JLog. &lt;br /&gt;
&lt;br /&gt;
Логирование, в некоторой степени, может контролироваться динамически через общие настройки Joomla и путем настройки плагина Система - Отладка (поставляется с Joomla). В целом эти возможности позволяют вам:&lt;br /&gt;
* включать или отключать систему отладки - чтобы вы не потребляли ресурсы без необходимости, но при этом у вас оставалась информация, чтобы помочь в устранении неполадок, когда есть проблемы. Например, на живом сайте, на котором установлено ваше расширение.&lt;br /&gt;
* направлять сообщения логов в определенный файл логов вашего собственного расширения&lt;br /&gt;
* просматривать сообщения логов в консоли отладки - вы можете выбрать группу пользователей, для которых должны отображаться сообщения логов, чтобы на живом сайте разработчики могли видеть сообщения, в то время как другие пользователи не затрагивались.&lt;br /&gt;
* фильтровать сообщения консоли отладки по приоритету (например, INFO, DEBUG, WARNING и т. д.) и по категориям (вы можете сами определять свои категории).&lt;br /&gt;
Кроме того, сообщения логов могут быть переведены на разные языки. &lt;br /&gt;
&lt;br /&gt;
Основные параметры конфигурации, относящиеся к ведению логов, показаны ниже.&lt;br /&gt;
&lt;br /&gt;
Включение отладки и отображение консоли отладки Joomla контролируется через общие настройки.&lt;br /&gt;
[[File:Global conf debug-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Логирование в общий файл логов контролируется с помощью вкладки Журнал (логи) конфигурации плагина Joomla Система - Отладка (в меню администратора нажмите «Расширения / Плагины», найдите плагин «Система - Отладка» и нажмите на него, чтобы изменить его настраиваемые параметры). &lt;br /&gt;
[[File:Debug logging settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Параметры на вкладке &amp;quot;Плагин&amp;quot; контролируют отображение в консоли отладки Joomla.&lt;br /&gt;
[[File:Debug plugin settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Базовое логирование в файл ==&lt;br /&gt;
&lt;br /&gt;
Чтобы залогировать сообщение, используйте функцию &amp;lt;tt&amp;gt;JLog::add()&amp;lt;/tt&amp;gt;. Например:&lt;br /&gt;
&lt;br /&gt;
    JLog::add(&#039;my error message&#039;, JLog::ERROR, &#039;my-error-category&#039;);&lt;br /&gt;
&lt;br /&gt;
Параметры&lt;br /&gt;
# Строка сообщения. Вы можете использовать перевод с этими значениями, например, &amp;lt;tt&amp;gt;JText::_(&#039;MY_EXTENSION_ERR_MSG&#039;)&amp;lt;/tt&amp;gt;. Вы также можете отображать значения переменных при условии, что вы конвертируете их в строковый формат (например, с помощью &amp;lt;tt&amp;gt;__toString ()&amp;lt;/tt&amp;gt;, если тип переменной это поддерживает). &lt;br /&gt;
# Приоритет, который может быть одним из: JLog::EMERGENCY, JLog::ALERT, JLog::CRITICAL, JLog::ERROR, JLog::WARNING, JLog::NOTICE, JLog::INFO, JLog::DEBUG (основано на уровнях серьёзности syslog / RFC 5424 – подробнее на [https://ru.wikipedia.org/wiki/Syslog материал Wikipedia о syslog]).&lt;br /&gt;
# Категория, которая является просто текстовой строкой. Вы можете определить любые категории, которые вам нравятся, и лучше всего определять их, чтобы избежать возможных конфликтов с другими расширениями. &lt;br /&gt;
&lt;br /&gt;
Если вы включите диагностические сообщения отладки в ваше расширение, то это может быть очень полезно при устранении неполадок. В этом случае добавьте к своему лог сообщению проверку на JDEBUG:&lt;br /&gt;
&lt;br /&gt;
    if (JDEBUG) &lt;br /&gt;
    {&lt;br /&gt;
        JLog::add(&#039;my debug message&#039;, JLog::DEBUG, &#039;my-debug-category&#039;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
== Логирование в определённый файл лога == &lt;br /&gt;
Вы можете использовать &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;, чтобы настроить ведение логов в дополнительный файл логов, отфильтровывая сообщения логов по приоритету (уровень серьезности) и / или категории. Параметры &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
# массив с деталями конфигурации - включая имя файла логов&lt;br /&gt;
# уровни серьезности, которые будут логироваться в этом файле&lt;br /&gt;
# массив категорий, которые будут логироваться в этом файле (или если для параметра 4 установлено значение &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;, тогда этот массив определяет категории, которые НЕ должны регистрироваться в файле)&lt;br /&gt;
# (часто пропускается) логическое значение, указывающее, является ли параметр 3 списком включения (по умолчанию P4 = &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;) или списком исключения (P4 = &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Например, если вы разработали расширение &#039;com_helloworld&#039;, вы можете использовать следующее:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.log.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets messages of all log levels to be sent to the file&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
            // The log category/categories which should be recorded in this file&lt;br /&gt;
            // In this case, it&#039;s just the one category from our extension, still&lt;br /&gt;
            // we need to put it inside an array&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Затем, когда вы логируете сообщение, укажите категорию &#039;com_helloworld&#039;, как в примере ниже&lt;br /&gt;
&lt;br /&gt;
    JLog::add(JText::_(&#039;COM_HELLOWORLD_ERROR_MESSAGE_123&#039;), JLog::ERROR, &#039;com_helloworld&#039;);&lt;br /&gt;
&lt;br /&gt;
Это приведет к тому, что ваше сообщение будет записано в com_helloworld.log.php. Если в настройках плагина «Система - Отладка» для параметра «Протоколировать все» задано значение «Да», то это сообщение появится и в общем файле журнала everything.php.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Вы можете объединить это с [[S:MyLanguage/Display error messages and notices|Display error messages and notices]] для отображения видимых уведомлений об ошибках для пользователей.&lt;br /&gt;
&lt;br /&gt;
Вы также можете добавить дополнительный логгер для сбора только критических и аварийных уведомлений:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets critical and emergency log level messages to be sent to the file&lt;br /&gt;
        JLog::CRITICAL + JLog::EMERGENCY,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Вы также можете исключить определенный уровень приоритета от включения в файл логов. Например, чтобы логировать все сообщения кроме DEBUG:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.all_but_debug.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Уровни приоритета &amp;lt;tt&amp;gt;JLog&amp;lt;/tt&amp;gt; реализованы в виде отдельных битов целого числа, поэтому вы можете использовать &#039;&#039;&#039;побитовые&#039;&#039;&#039; операции  (побитовое AND, &amp;amp;; и побитовое NOT, ~) для вычисления подходящих уровней логов. &amp;lt;tt&amp;gt;JLog::All&amp;lt;/tt&amp;gt; является постоянным целым числом, в котором установлены все соответствующие биты, так что включены все уровни приоритета Joomla. &lt;br /&gt;
&lt;br /&gt;
== Форматирование файла лога ==&lt;br /&gt;
&lt;br /&gt;
Первый параметр &amp;lt;tt&amp;gt;addLogger&amp;lt;/tt&amp;gt; может иметь несколько необязательных дополнительных настроек в дополнение к записи &amp;lt;tt&amp;gt;text_file&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, есть параметр &amp;lt;tt&amp;gt;text_entry_format&amp;lt;/tt&amp;gt;, указывающая формат каждой строки в вашем лог файле.&lt;br /&gt;
&lt;br /&gt;
Формат по умолчанию:&lt;br /&gt;
&lt;br /&gt;
    &#039;{DATETIME} {PRIORITY}      {CATEGORY}      {MESSAGE}&#039;&lt;br /&gt;
&lt;br /&gt;
Вот пример другого формата, который показывает, как пропустить категорию:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;,&lt;br /&gt;
             // Sets the format of each line&lt;br /&gt;
             &#039;text_entry_format&#039; =&amp;gt; &#039;{DATETIME} {PRIORITY} {MESSAGE}&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Помимо заполнителей (placeholder), показанных выше в строке по умолчанию, доступны следующие значения:&lt;br /&gt;
&lt;br /&gt;
    {CLIENTIP}      (this is the IP address of the client)&lt;br /&gt;
    {TIME}&lt;br /&gt;
    {DATE}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Существует дополнительный необязательный логический параметр &amp;lt;tt&amp;gt;text_file_no_php&amp;lt;/tt&amp;gt;, который указывает, следует ли добавлять в файл логов обычный префикс:&lt;br /&gt;
&lt;br /&gt;
    #&lt;br /&gt;
    #&amp;lt;?php die(&#039;Forbidden.&#039;);?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Обычно вам не следует устанавливать для этого параметра значение &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;. Файлы логов не должны быть доступны для чтения извне, поскольку они могут предоставить злоумышленникам ценную информацию о вашей системе.&lt;br /&gt;
Изменяйте этот параметр, только если вы знаете, что делаете!&lt;br /&gt;
&lt;br /&gt;
Кроме того, если вы хотите сохранить файл логов где-то еще, а не по пути, указанному в общих настройках Joomla, вы можете изменить параметр &amp;lt;tt&amp;gt;text_file_path&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Логирование в другие места ==&lt;br /&gt;
&lt;br /&gt;
Помимо логирования в файлы, вы также можете логировать в другие места, такие как&lt;br /&gt;
* область сообщений Joomla (сообщение отображается, если вы вызываете &amp;lt;tt&amp;gt;JFactory::getApplication()-&amp;gt;enqueueMessage()&amp;lt;/tt&amp;gt;)&lt;br /&gt;
* таблица базы данных&lt;br /&gt;
* просто echo&lt;br /&gt;
Из них, пожалуй, наиболее полезным является логирование в панель сообщений, которое можно настроить следующим образом:&lt;br /&gt;
     JLog::addLogger(array(&#039;logger&#039; =&amp;gt; &#039;messagequeue&#039;), JLog::ALL, array(&#039;msg-error-cat&#039;));&lt;br /&gt;
Затем, когда вы делаете:&lt;br /&gt;
     JLog::add(&#039;сообщение об ошибке для отображения&#039;, JLog::ERROR, &#039;msg-error-cat&#039;);&lt;br /&gt;
вы получаете сообщение, скопированное на панель сообщений.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note that Joomla core code sets up logging to the messagequeue for category &#039;jerror&#039;, so that if you use this category in your log messages, you will get the message displayed on the message bar.&#039;&#039;&#039; Eg&lt;br /&gt;
    JLog::add(&#039;error copied to message bar&#039;, JLog::Error, &#039;jerror&#039;);&lt;br /&gt;
will result in the message being shown in the Joomla message area, even though you haven&#039;t explicitly set up a logger to log there.&lt;br /&gt;
&lt;br /&gt;
== Исключения ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;JLog::add()&amp;lt;/code&amp;gt; кидает исключение, если не может записать в файл логов. Чтобы избежать этого, вам придется либо обернуть вызов в другую функцию, либо реализовать свой собственный класс логгера, а затем включить его:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Use mycustomlogger&lt;br /&gt;
             &#039;logger&#039; =&amp;gt; &#039;mycustomlogger&#039;,&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.errors.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
== Что ещё почитать == &lt;br /&gt;
Логирование в Joomla должно использоваться в тандеме с исключениями PHP, а не в качестве замены. Подробнее в [[S:MyLanguage/Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1|Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]].&lt;br /&gt;
&lt;br /&gt;
Another tutorial (a little out of date, but still useful) is at [http://eddify.me/posts/logging-in-joomla-with-jlog.html Logging in Joomla with JLog].&lt;br /&gt;
Другое руководство (немного устаревшее, но все же полезное) находится по адресу [http://eddify.me/posts/logging-in-joomla-with-jlog.html Logging in Joomla with JLog].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 1.7{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 2.5{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.0{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.x{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/26/ru&amp;diff=587368</id>
		<title>Translations:Using JLog/26/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/26/ru&amp;diff=587368"/>
		<updated>2019-01-16T08:18:17Z</updated>

		<summary type="html">&lt;p&gt;B2z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;code&amp;gt;JLog::add()&amp;lt;/code&amp;gt; кидает исключение, если не может записать в файл логов. Чтобы избежать этого, вам придется либо обернуть вызов в другую функцию, либо реализовать свой собственный класс логгера, а затем включить его:&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587367</id>
		<title>Using JLog/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587367"/>
		<updated>2019-01-16T08:17:22Z</updated>

		<summary type="html">&lt;p&gt;B2z: Created page with &amp;quot;Another tutorial (a little out of date, but still useful) is at [http://eddify.me/posts/logging-in-joomla-with-jlog.html Logging in Joomla with JLog]. Другое руков...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Обзор ==&lt;br /&gt;
Логирование в Joomla дает вам возможность логировать сообщения в файлы и на экран (в консоли отладки Joomla внизу веб-страницы), а основным классом Joomla, который для этого используется, является JLog. &lt;br /&gt;
&lt;br /&gt;
Логирование, в некоторой степени, может контролироваться динамически через общие настройки Joomla и путем настройки плагина Система - Отладка (поставляется с Joomla). В целом эти возможности позволяют вам:&lt;br /&gt;
* включать или отключать систему отладки - чтобы вы не потребляли ресурсы без необходимости, но при этом у вас оставалась информация, чтобы помочь в устранении неполадок, когда есть проблемы. Например, на живом сайте, на котором установлено ваше расширение.&lt;br /&gt;
* направлять сообщения логов в определенный файл логов вашего собственного расширения&lt;br /&gt;
* просматривать сообщения логов в консоли отладки - вы можете выбрать группу пользователей, для которых должны отображаться сообщения логов, чтобы на живом сайте разработчики могли видеть сообщения, в то время как другие пользователи не затрагивались.&lt;br /&gt;
* фильтровать сообщения консоли отладки по приоритету (например, INFO, DEBUG, WARNING и т. д.) и по категориям (вы можете сами определять свои категории).&lt;br /&gt;
Кроме того, сообщения логов могут быть переведены на разные языки. &lt;br /&gt;
&lt;br /&gt;
Основные параметры конфигурации, относящиеся к ведению логов, показаны ниже.&lt;br /&gt;
&lt;br /&gt;
Включение отладки и отображение консоли отладки Joomla контролируется через общие настройки.&lt;br /&gt;
[[File:Global conf debug-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Логирование в общий файл логов контролируется с помощью вкладки Журнал (логи) конфигурации плагина Joomla Система - Отладка (в меню администратора нажмите «Расширения / Плагины», найдите плагин «Система - Отладка» и нажмите на него, чтобы изменить его настраиваемые параметры). &lt;br /&gt;
[[File:Debug logging settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Параметры на вкладке &amp;quot;Плагин&amp;quot; контролируют отображение в консоли отладки Joomla.&lt;br /&gt;
[[File:Debug plugin settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Базовое логирование в файл ==&lt;br /&gt;
&lt;br /&gt;
Чтобы залогировать сообщение, используйте функцию &amp;lt;tt&amp;gt;JLog::add()&amp;lt;/tt&amp;gt;. Например:&lt;br /&gt;
&lt;br /&gt;
    JLog::add(&#039;my error message&#039;, JLog::ERROR, &#039;my-error-category&#039;);&lt;br /&gt;
&lt;br /&gt;
Параметры&lt;br /&gt;
# Строка сообщения. Вы можете использовать перевод с этими значениями, например, &amp;lt;tt&amp;gt;JText::_(&#039;MY_EXTENSION_ERR_MSG&#039;)&amp;lt;/tt&amp;gt;. Вы также можете отображать значения переменных при условии, что вы конвертируете их в строковый формат (например, с помощью &amp;lt;tt&amp;gt;__toString ()&amp;lt;/tt&amp;gt;, если тип переменной это поддерживает). &lt;br /&gt;
# Приоритет, который может быть одним из: JLog::EMERGENCY, JLog::ALERT, JLog::CRITICAL, JLog::ERROR, JLog::WARNING, JLog::NOTICE, JLog::INFO, JLog::DEBUG (основано на уровнях серьёзности syslog / RFC 5424 – подробнее на [https://ru.wikipedia.org/wiki/Syslog материал Wikipedia о syslog]).&lt;br /&gt;
# Категория, которая является просто текстовой строкой. Вы можете определить любые категории, которые вам нравятся, и лучше всего определять их, чтобы избежать возможных конфликтов с другими расширениями. &lt;br /&gt;
&lt;br /&gt;
Если вы включите диагностические сообщения отладки в ваше расширение, то это может быть очень полезно при устранении неполадок. В этом случае добавьте к своему лог сообщению проверку на JDEBUG:&lt;br /&gt;
&lt;br /&gt;
    if (JDEBUG) &lt;br /&gt;
    {&lt;br /&gt;
        JLog::add(&#039;my debug message&#039;, JLog::DEBUG, &#039;my-debug-category&#039;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
== Логирование в определённый файл лога == &lt;br /&gt;
Вы можете использовать &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;, чтобы настроить ведение логов в дополнительный файл логов, отфильтровывая сообщения логов по приоритету (уровень серьезности) и / или категории. Параметры &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
# массив с деталями конфигурации - включая имя файла логов&lt;br /&gt;
# уровни серьезности, которые будут логироваться в этом файле&lt;br /&gt;
# массив категорий, которые будут логироваться в этом файле (или если для параметра 4 установлено значение &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;, тогда этот массив определяет категории, которые НЕ должны регистрироваться в файле)&lt;br /&gt;
# (часто пропускается) логическое значение, указывающее, является ли параметр 3 списком включения (по умолчанию P4 = &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;) или списком исключения (P4 = &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Например, если вы разработали расширение &#039;com_helloworld&#039;, вы можете использовать следующее:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.log.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets messages of all log levels to be sent to the file&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
            // The log category/categories which should be recorded in this file&lt;br /&gt;
            // In this case, it&#039;s just the one category from our extension, still&lt;br /&gt;
            // we need to put it inside an array&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Затем, когда вы логируете сообщение, укажите категорию &#039;com_helloworld&#039;, как в примере ниже&lt;br /&gt;
&lt;br /&gt;
    JLog::add(JText::_(&#039;COM_HELLOWORLD_ERROR_MESSAGE_123&#039;), JLog::ERROR, &#039;com_helloworld&#039;);&lt;br /&gt;
&lt;br /&gt;
Это приведет к тому, что ваше сообщение будет записано в com_helloworld.log.php. Если в настройках плагина «Система - Отладка» для параметра «Протоколировать все» задано значение «Да», то это сообщение появится и в общем файле журнала everything.php.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Вы можете объединить это с [[S:MyLanguage/Display error messages and notices|Display error messages and notices]] для отображения видимых уведомлений об ошибках для пользователей.&lt;br /&gt;
&lt;br /&gt;
Вы также можете добавить дополнительный логгер для сбора только критических и аварийных уведомлений:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets critical and emergency log level messages to be sent to the file&lt;br /&gt;
        JLog::CRITICAL + JLog::EMERGENCY,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Вы также можете исключить определенный уровень приоритета от включения в файл логов. Например, чтобы логировать все сообщения кроме DEBUG:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.all_but_debug.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Уровни приоритета &amp;lt;tt&amp;gt;JLog&amp;lt;/tt&amp;gt; реализованы в виде отдельных битов целого числа, поэтому вы можете использовать &#039;&#039;&#039;побитовые&#039;&#039;&#039; операции  (побитовое AND, &amp;amp;; и побитовое NOT, ~) для вычисления подходящих уровней логов. &amp;lt;tt&amp;gt;JLog::All&amp;lt;/tt&amp;gt; является постоянным целым числом, в котором установлены все соответствующие биты, так что включены все уровни приоритета Joomla. &lt;br /&gt;
&lt;br /&gt;
== Форматирование файла лога ==&lt;br /&gt;
&lt;br /&gt;
Первый параметр &amp;lt;tt&amp;gt;addLogger&amp;lt;/tt&amp;gt; может иметь несколько необязательных дополнительных настроек в дополнение к записи &amp;lt;tt&amp;gt;text_file&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, есть параметр &amp;lt;tt&amp;gt;text_entry_format&amp;lt;/tt&amp;gt;, указывающая формат каждой строки в вашем лог файле.&lt;br /&gt;
&lt;br /&gt;
Формат по умолчанию:&lt;br /&gt;
&lt;br /&gt;
    &#039;{DATETIME} {PRIORITY}      {CATEGORY}      {MESSAGE}&#039;&lt;br /&gt;
&lt;br /&gt;
Вот пример другого формата, который показывает, как пропустить категорию:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;,&lt;br /&gt;
             // Sets the format of each line&lt;br /&gt;
             &#039;text_entry_format&#039; =&amp;gt; &#039;{DATETIME} {PRIORITY} {MESSAGE}&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Помимо заполнителей (placeholder), показанных выше в строке по умолчанию, доступны следующие значения:&lt;br /&gt;
&lt;br /&gt;
    {CLIENTIP}      (this is the IP address of the client)&lt;br /&gt;
    {TIME}&lt;br /&gt;
    {DATE}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Существует дополнительный необязательный логический параметр &amp;lt;tt&amp;gt;text_file_no_php&amp;lt;/tt&amp;gt;, который указывает, следует ли добавлять в файл логов обычный префикс:&lt;br /&gt;
&lt;br /&gt;
    #&lt;br /&gt;
    #&amp;lt;?php die(&#039;Forbidden.&#039;);?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Обычно вам не следует устанавливать для этого параметра значение &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;. Файлы логов не должны быть доступны для чтения извне, поскольку они могут предоставить злоумышленникам ценную информацию о вашей системе.&lt;br /&gt;
Изменяйте этот параметр, только если вы знаете, что делаете!&lt;br /&gt;
&lt;br /&gt;
Кроме того, если вы хотите сохранить файл логов где-то еще, а не по пути, указанному в общих настройках Joomla, вы можете изменить параметр &amp;lt;tt&amp;gt;text_file_path&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Логирование в другие места ==&lt;br /&gt;
&lt;br /&gt;
Помимо логирования в файлы, вы также можете логировать в другие места, такие как&lt;br /&gt;
* область сообщений Joomla (сообщение отображается, если вы вызываете &amp;lt;tt&amp;gt;JFactory::getApplication()-&amp;gt;enqueueMessage()&amp;lt;/tt&amp;gt;)&lt;br /&gt;
* таблица базы данных&lt;br /&gt;
* просто echo&lt;br /&gt;
Из них, пожалуй, наиболее полезным является логирование в панель сообщений, которое можно настроить следующим образом:&lt;br /&gt;
     JLog::addLogger(array(&#039;logger&#039; =&amp;gt; &#039;messagequeue&#039;), JLog::ALL, array(&#039;msg-error-cat&#039;));&lt;br /&gt;
Затем, когда вы делаете:&lt;br /&gt;
     JLog::add(&#039;сообщение об ошибке для отображения&#039;, JLog::ERROR, &#039;msg-error-cat&#039;);&lt;br /&gt;
вы получаете сообщение, скопированное на панель сообщений.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note that Joomla core code sets up logging to the messagequeue for category &#039;jerror&#039;, so that if you use this category in your log messages, you will get the message displayed on the message bar.&#039;&#039;&#039; Eg&lt;br /&gt;
    JLog::add(&#039;error copied to message bar&#039;, JLog::Error, &#039;jerror&#039;);&lt;br /&gt;
will result in the message being shown in the Joomla message area, even though you haven&#039;t explicitly set up a logger to log there.&lt;br /&gt;
&lt;br /&gt;
== Исключения ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;JLog::add()&amp;lt;/code&amp;gt; кидает исключение, если не может записать в файл логов. Чтобы избежать этого, вам придется либо обернуть вызов в другую функцию, либо реализовать свой собственный класс логгера, а затем включить его в:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Use mycustomlogger&lt;br /&gt;
             &#039;logger&#039; =&amp;gt; &#039;mycustomlogger&#039;,&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.errors.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
== Что ещё почитать == &lt;br /&gt;
Логирование в Joomla должно использоваться в тандеме с исключениями PHP, а не в качестве замены. Подробнее в [[S:MyLanguage/Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1|Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]].&lt;br /&gt;
&lt;br /&gt;
Another tutorial (a little out of date, but still useful) is at [http://eddify.me/posts/logging-in-joomla-with-jlog.html Logging in Joomla with JLog].&lt;br /&gt;
Другое руководство (немного устаревшее, но все же полезное) находится по адресу [http://eddify.me/posts/logging-in-joomla-with-jlog.html Logging in Joomla with JLog].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 1.7{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 2.5{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.0{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.x{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/52/ru&amp;diff=587366</id>
		<title>Translations:Using JLog/52/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/52/ru&amp;diff=587366"/>
		<updated>2019-01-16T08:17:22Z</updated>

		<summary type="html">&lt;p&gt;B2z: Created page with &amp;quot;Another tutorial (a little out of date, but still useful) is at [http://eddify.me/posts/logging-in-joomla-with-jlog.html Logging in Joomla with JLog]. Другое руков...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Another tutorial (a little out of date, but still useful) is at [http://eddify.me/posts/logging-in-joomla-with-jlog.html Logging in Joomla with JLog].&lt;br /&gt;
Другое руководство (немного устаревшее, но все же полезное) находится по адресу [http://eddify.me/posts/logging-in-joomla-with-jlog.html Logging in Joomla with JLog].&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587365</id>
		<title>Using JLog/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Using_JLog/ru&amp;diff=587365"/>
		<updated>2019-01-16T08:15:37Z</updated>

		<summary type="html">&lt;p&gt;B2z: Created page with &amp;quot;Логирование в Joomla должно использоваться в тандеме с исключениями PHP, а не в качестве замены. Под...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Обзор ==&lt;br /&gt;
Логирование в Joomla дает вам возможность логировать сообщения в файлы и на экран (в консоли отладки Joomla внизу веб-страницы), а основным классом Joomla, который для этого используется, является JLog. &lt;br /&gt;
&lt;br /&gt;
Логирование, в некоторой степени, может контролироваться динамически через общие настройки Joomla и путем настройки плагина Система - Отладка (поставляется с Joomla). В целом эти возможности позволяют вам:&lt;br /&gt;
* включать или отключать систему отладки - чтобы вы не потребляли ресурсы без необходимости, но при этом у вас оставалась информация, чтобы помочь в устранении неполадок, когда есть проблемы. Например, на живом сайте, на котором установлено ваше расширение.&lt;br /&gt;
* направлять сообщения логов в определенный файл логов вашего собственного расширения&lt;br /&gt;
* просматривать сообщения логов в консоли отладки - вы можете выбрать группу пользователей, для которых должны отображаться сообщения логов, чтобы на живом сайте разработчики могли видеть сообщения, в то время как другие пользователи не затрагивались.&lt;br /&gt;
* фильтровать сообщения консоли отладки по приоритету (например, INFO, DEBUG, WARNING и т. д.) и по категориям (вы можете сами определять свои категории).&lt;br /&gt;
Кроме того, сообщения логов могут быть переведены на разные языки. &lt;br /&gt;
&lt;br /&gt;
Основные параметры конфигурации, относящиеся к ведению логов, показаны ниже.&lt;br /&gt;
&lt;br /&gt;
Включение отладки и отображение консоли отладки Joomla контролируется через общие настройки.&lt;br /&gt;
[[File:Global conf debug-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Логирование в общий файл логов контролируется с помощью вкладки Журнал (логи) конфигурации плагина Joomla Система - Отладка (в меню администратора нажмите «Расширения / Плагины», найдите плагин «Система - Отладка» и нажмите на него, чтобы изменить его настраиваемые параметры). &lt;br /&gt;
[[File:Debug logging settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
Параметры на вкладке &amp;quot;Плагин&amp;quot; контролируют отображение в консоли отладки Joomla.&lt;br /&gt;
[[File:Debug plugin settings-en.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Базовое логирование в файл ==&lt;br /&gt;
&lt;br /&gt;
Чтобы залогировать сообщение, используйте функцию &amp;lt;tt&amp;gt;JLog::add()&amp;lt;/tt&amp;gt;. Например:&lt;br /&gt;
&lt;br /&gt;
    JLog::add(&#039;my error message&#039;, JLog::ERROR, &#039;my-error-category&#039;);&lt;br /&gt;
&lt;br /&gt;
Параметры&lt;br /&gt;
# Строка сообщения. Вы можете использовать перевод с этими значениями, например, &amp;lt;tt&amp;gt;JText::_(&#039;MY_EXTENSION_ERR_MSG&#039;)&amp;lt;/tt&amp;gt;. Вы также можете отображать значения переменных при условии, что вы конвертируете их в строковый формат (например, с помощью &amp;lt;tt&amp;gt;__toString ()&amp;lt;/tt&amp;gt;, если тип переменной это поддерживает). &lt;br /&gt;
# Приоритет, который может быть одним из: JLog::EMERGENCY, JLog::ALERT, JLog::CRITICAL, JLog::ERROR, JLog::WARNING, JLog::NOTICE, JLog::INFO, JLog::DEBUG (основано на уровнях серьёзности syslog / RFC 5424 – подробнее на [https://ru.wikipedia.org/wiki/Syslog материал Wikipedia о syslog]).&lt;br /&gt;
# Категория, которая является просто текстовой строкой. Вы можете определить любые категории, которые вам нравятся, и лучше всего определять их, чтобы избежать возможных конфликтов с другими расширениями. &lt;br /&gt;
&lt;br /&gt;
Если вы включите диагностические сообщения отладки в ваше расширение, то это может быть очень полезно при устранении неполадок. В этом случае добавьте к своему лог сообщению проверку на JDEBUG:&lt;br /&gt;
&lt;br /&gt;
    if (JDEBUG) &lt;br /&gt;
    {&lt;br /&gt;
        JLog::add(&#039;my debug message&#039;, JLog::DEBUG, &#039;my-debug-category&#039;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
== Логирование в определённый файл лога == &lt;br /&gt;
Вы можете использовать &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;, чтобы настроить ведение логов в дополнительный файл логов, отфильтровывая сообщения логов по приоритету (уровень серьезности) и / или категории. Параметры &amp;lt;tt&amp;gt;JLog::addLogger()&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
# массив с деталями конфигурации - включая имя файла логов&lt;br /&gt;
# уровни серьезности, которые будут логироваться в этом файле&lt;br /&gt;
# массив категорий, которые будут логироваться в этом файле (или если для параметра 4 установлено значение &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;, тогда этот массив определяет категории, которые НЕ должны регистрироваться в файле)&lt;br /&gt;
# (часто пропускается) логическое значение, указывающее, является ли параметр 3 списком включения (по умолчанию P4 = &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;) или списком исключения (P4 = &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Например, если вы разработали расширение &#039;com_helloworld&#039;, вы можете использовать следующее:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.log.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets messages of all log levels to be sent to the file&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
            // The log category/categories which should be recorded in this file&lt;br /&gt;
            // In this case, it&#039;s just the one category from our extension, still&lt;br /&gt;
            // we need to put it inside an array&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Затем, когда вы логируете сообщение, укажите категорию &#039;com_helloworld&#039;, как в примере ниже&lt;br /&gt;
&lt;br /&gt;
    JLog::add(JText::_(&#039;COM_HELLOWORLD_ERROR_MESSAGE_123&#039;), JLog::ERROR, &#039;com_helloworld&#039;);&lt;br /&gt;
&lt;br /&gt;
Это приведет к тому, что ваше сообщение будет записано в com_helloworld.log.php. Если в настройках плагина «Система - Отладка» для параметра «Протоколировать все» задано значение «Да», то это сообщение появится и в общем файле журнала everything.php.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Вы можете объединить это с [[S:MyLanguage/Display error messages and notices|Display error messages and notices]] для отображения видимых уведомлений об ошибках для пользователей.&lt;br /&gt;
&lt;br /&gt;
Вы также можете добавить дополнительный логгер для сбора только критических и аварийных уведомлений:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets critical and emergency log level messages to be sent to the file&lt;br /&gt;
        JLog::CRITICAL + JLog::EMERGENCY,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Вы также можете исключить определенный уровень приоритета от включения в файл логов. Например, чтобы логировать все сообщения кроме DEBUG:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.all_but_debug.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Уровни приоритета &amp;lt;tt&amp;gt;JLog&amp;lt;/tt&amp;gt; реализованы в виде отдельных битов целого числа, поэтому вы можете использовать &#039;&#039;&#039;побитовые&#039;&#039;&#039; операции  (побитовое AND, &amp;amp;; и побитовое NOT, ~) для вычисления подходящих уровней логов. &amp;lt;tt&amp;gt;JLog::All&amp;lt;/tt&amp;gt; является постоянным целым числом, в котором установлены все соответствующие биты, так что включены все уровни приоритета Joomla. &lt;br /&gt;
&lt;br /&gt;
== Форматирование файла лога ==&lt;br /&gt;
&lt;br /&gt;
Первый параметр &amp;lt;tt&amp;gt;addLogger&amp;lt;/tt&amp;gt; может иметь несколько необязательных дополнительных настроек в дополнение к записи &amp;lt;tt&amp;gt;text_file&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Например, есть параметр &amp;lt;tt&amp;gt;text_entry_format&amp;lt;/tt&amp;gt;, указывающая формат каждой строки в вашем лог файле.&lt;br /&gt;
&lt;br /&gt;
Формат по умолчанию:&lt;br /&gt;
&lt;br /&gt;
    &#039;{DATETIME} {PRIORITY}      {CATEGORY}      {MESSAGE}&#039;&lt;br /&gt;
&lt;br /&gt;
Вот пример другого формата, который показывает, как пропустить категорию:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Sets file name&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.critical_emergency.php&#039;,&lt;br /&gt;
             // Sets the format of each line&lt;br /&gt;
             &#039;text_entry_format&#039; =&amp;gt; &#039;{DATETIME} {PRIORITY} {MESSAGE}&#039;&lt;br /&gt;
        ),&lt;br /&gt;
            // Sets all but DEBUG log level messages to be sent to the file&lt;br /&gt;
        JLog::ALL &amp;amp; ~JLog::DEBUG,&lt;br /&gt;
            // The log category which should be recorded in this file&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
Помимо заполнителей (placeholder), показанных выше в строке по умолчанию, доступны следующие значения:&lt;br /&gt;
&lt;br /&gt;
    {CLIENTIP}      (this is the IP address of the client)&lt;br /&gt;
    {TIME}&lt;br /&gt;
    {DATE}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Существует дополнительный необязательный логический параметр &amp;lt;tt&amp;gt;text_file_no_php&amp;lt;/tt&amp;gt;, который указывает, следует ли добавлять в файл логов обычный префикс:&lt;br /&gt;
&lt;br /&gt;
    #&lt;br /&gt;
    #&amp;lt;?php die(&#039;Forbidden.&#039;);?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Примечание:&#039;&#039;&#039; Обычно вам не следует устанавливать для этого параметра значение &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;. Файлы логов не должны быть доступны для чтения извне, поскольку они могут предоставить злоумышленникам ценную информацию о вашей системе.&lt;br /&gt;
Изменяйте этот параметр, только если вы знаете, что делаете!&lt;br /&gt;
&lt;br /&gt;
Кроме того, если вы хотите сохранить файл логов где-то еще, а не по пути, указанному в общих настройках Joomla, вы можете изменить параметр &amp;lt;tt&amp;gt;text_file_path&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Логирование в другие места ==&lt;br /&gt;
&lt;br /&gt;
Помимо логирования в файлы, вы также можете логировать в другие места, такие как&lt;br /&gt;
* область сообщений Joomla (сообщение отображается, если вы вызываете &amp;lt;tt&amp;gt;JFactory::getApplication()-&amp;gt;enqueueMessage()&amp;lt;/tt&amp;gt;)&lt;br /&gt;
* таблица базы данных&lt;br /&gt;
* просто echo&lt;br /&gt;
Из них, пожалуй, наиболее полезным является логирование в панель сообщений, которое можно настроить следующим образом:&lt;br /&gt;
     JLog::addLogger(array(&#039;logger&#039; =&amp;gt; &#039;messagequeue&#039;), JLog::ALL, array(&#039;msg-error-cat&#039;));&lt;br /&gt;
Затем, когда вы делаете:&lt;br /&gt;
     JLog::add(&#039;сообщение об ошибке для отображения&#039;, JLog::ERROR, &#039;msg-error-cat&#039;);&lt;br /&gt;
вы получаете сообщение, скопированное на панель сообщений.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note that Joomla core code sets up logging to the messagequeue for category &#039;jerror&#039;, so that if you use this category in your log messages, you will get the message displayed on the message bar.&#039;&#039;&#039; Eg&lt;br /&gt;
    JLog::add(&#039;error copied to message bar&#039;, JLog::Error, &#039;jerror&#039;);&lt;br /&gt;
will result in the message being shown in the Joomla message area, even though you haven&#039;t explicitly set up a logger to log there.&lt;br /&gt;
&lt;br /&gt;
== Исключения ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;JLog::add()&amp;lt;/code&amp;gt; кидает исключение, если не может записать в файл логов. Чтобы избежать этого, вам придется либо обернуть вызов в другую функцию, либо реализовать свой собственный класс логгера, а затем включить его в:&lt;br /&gt;
&lt;br /&gt;
    JLog::addLogger(&lt;br /&gt;
        array(&lt;br /&gt;
             // Use mycustomlogger&lt;br /&gt;
             &#039;logger&#039; =&amp;gt; &#039;mycustomlogger&#039;,&lt;br /&gt;
             &#039;text_file&#039; =&amp;gt; &#039;com_helloworld.errors.php&#039;&lt;br /&gt;
        ),&lt;br /&gt;
        JLog::ALL,&lt;br /&gt;
        array(&#039;com_helloworld&#039;)&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
== Что ещё почитать == &lt;br /&gt;
Логирование в Joomla должно использоваться в тандеме с исключениями PHP, а не в качестве замены. Подробнее в [[S:MyLanguage/Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1|Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]].&lt;br /&gt;
&lt;br /&gt;
Another tutorial (a little out of date, but still useful) is at [http://eddify.me/posts/logging-in-joomla-with-jlog.html logging in joomla with jlog].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 1.7{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 2.5{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.0{{#translation:}}]]&lt;br /&gt;
[[category:Joomla! 3.x{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/51/ru&amp;diff=587364</id>
		<title>Translations:Using JLog/51/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Using_JLog/51/ru&amp;diff=587364"/>
		<updated>2019-01-16T08:15:37Z</updated>

		<summary type="html">&lt;p&gt;B2z: Created page with &amp;quot;Логирование в Joomla должно использоваться в тандеме с исключениями PHP, а не в качестве замены. Под...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Логирование в Joomla должно использоваться в тандеме с исключениями PHP, а не в качестве замены. Подробнее в [[S:MyLanguage/Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1|Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]].&lt;/div&gt;</summary>
		<author><name>B2z</name></author>
	</entry>
</feed>