как мне зарегистрировать действия плагина (cron)?

<p>есть ли рекомендуемый способ записи (неудачных) действий cron из вашего плагина? например, у меня есть плагин, который синхронизируется с внешним сервисом каждый час. я хочу войти, сколько было изменено, но также, когда синхронизация не удалась. что бы вы порекомендовали здесь? новая таблица базы данных? плагин <a href="http://wordpress.org/extend/plugins/log-deprecated-notices/">log deprecated notices</a> делает это с пользовательским типом записи, но это может быть слишком много накладных расходов? я считаю <a href="http://core.trac.wordpress.org/ticket/5669">wordpress не поставляется со стандартным пакетом регистрации</a> ?</p>

<ol> <li> <p><strong> используйте файл </strong>, чтобы записать события в. здесь есть несколько недостатков;</p> <ul> <li><em>разрешения файловой системы</em>. при развертывании приложения вам нужно будет позаботиться о том, чтобы дать веб-серверу разрешение на запись в файл. и, чтобы быть уверенным, вы должны написать код, который проверяет, можете ли вы записать в файл и выдать предупреждение, когда вы не можете. это добавляет сложности и, вероятно, является причиной проблем с развертыванием.</li> <li><em>случайное удаление</em>. вы можете случайно удалить пользовательский файл журнала и потерять свои записи. это может быть неудобно.</li> <li><em>пользовательский формат журнала</em>. вам нужно будет придумать собственный (машиночитаемый?) текстовый формат для записи событий в ваш файл. когда вам нужно изменить формат журнала, нет удобного способа перенести старые записи. если вы хотите провести какой-то анализ журналов, вам придется анализировать записи. это приводит к большему количеству кода и большей сложности. сложность плохая.</li> </ul> </li> <li> <p><strong> использовать таблицу базы данных </strong>. создайте свою собственную таблицу базы данных и регистрируйте события там. ни один из перечисленных выше недостатков не применяется. это не добавляет много сложности. автоматизируйте создание и удаление таблицы с помощью подключаемого модуля, и я думаю, у вас достаточно надежная система регистрации.</p> </li> <li> <p><strong> отправить по электронной почте </strong>. в зависимости от актуальности журналов, вы всегда можете выбрать этот метод. я полагаю, вы, возможно, захотите отправить электронное письмо в случае неудачи в любом случае.</p> </li> <li> <p><strong> использовать регистратор ос </strong>. когда вы используете функцию <a href="http://nl.php.net/syslog">syslog</a> в php, вы можете записывать события в системный журнал (системный журнал в unix, журнал событий в windows nt). настройка пользовательского системного журнала усложняет развертывание.</p> </li> </ol><p>в заключение; вам следует подумать, хотите ли вы регистрировать нормальные исключения <em>и</em> или только исключения. джефф этвуд сделал хорошую <a href="http://www.codinghorror.com/blog/2008/12/the-problem-with-logging.html">рецензию</a> об этом.</p><p>надеюсь это поможет!</p>

<p>используйте функцию ведения журнала, например <a href="http://fuelyourcoding.com/simple-debugging-with-wordpress/">this</a> , чтобы она записывала ваш журнал в debug.log, настроив ваш wp-config.php следующим образом, который я нашел <a href="http://codex.wordpress.org/editing\_wp-config.php#configure\_error\_log">здесь</a> :</p><pre><code>/** * this will log all errors notices and warnings to a file called debug.log in * wp-content (if apache does not have write permission, you may need to create * the file first and set the appropriate permissions (i.e. use 666) ) */ define('wp\_debug', true); define('wp\_debug\_log', true); define('wp\_debug\_display', false); @ini\_set('display\_errors',0); </code></pre><p>это должно работать, по крайней мере, в целях отладки/разработки (я не уверен, насколько это было бы здорово для ведения журналов, но это работает для разработки.)</p>

<p>я согласен, размещение этих данных в <code>wp\_posts</code> потенциально может привести к быстрому росту таблицы до неуправляемого размера. это хорошо, чтобы создать таблицу. я бы сделал лишнюю милю и дал бы кому-нибудь способ почистить таблицу журналов на случай, если они перестанут использовать свой плагин.</p><p>я не боюсь плагинов, которые создают таблицы, но, может быть, это потому, что я видел базы данных wordpress с 8 000 000 записей <code>wp\_term\_relationships</code> и 300 000 сообщений, и я знаю, насколько неприятным может быть этот опыт.</p><p><code>dbdelta()</code> и <a href="http://codex.wordpress.org/function\_reference/register\_activation\_hook"><code>register\_activation\_hook()</code></a> будут вашими друзьями здесь. смотрите <a href="http://codex.wordpress.org/creating\_tables\_with\_plugins">создание таблиц с помощью плагинов</a> .</p>