是否有推荐的方法来记录插件的CRON操作?例如,我的插件每小时都与外部服务同步。我想记录更改的数量,以及同步失败时。您会在这里推荐什么?一个新的数据库表?这 日志弃用通知 插件使用自定义帖子类型进行操作,但这可能太多了?我相信 WordPress不带有标准记录包?

有帮助吗?

解决方案

  1. 使用文件 将事件写入。这里有几个缺点。

    • 文件系统权限. 。部署应用程序时,您将必须注意记住要授予WebServer许可以写入文件。要肯定的是,您必须编写代码,以检查是否可以写入文件并在不能写警告。这增加了复杂性,可能是部署问题的原因。
    • 意外删除. 。您可能会意外删除自定义日志文件并丢失记录。这可能不便。
    • 自定义logformat. 。您必须提出一个自定义(机器可读?)文本格式才能将事件写入您的文件。当您必须更改日志格式时,就没有方便的方式来迁移旧记录。当您想对日志进行某种分析时,就必须解析记录。这导致了更多的代码和更复杂的性能。复杂性不好。
  2. 使用数据库表. 。创建自己的数据库表并在那里记录事件。上面列出的所有缺点都不适用。它并没有增加很多复杂性。使用插件挂钩自动化表的创建和删除,您认为您有一个相当可靠的日志系统。

  3. 发送电子邮件. 。根据日志的相关性,您始终可以选择此方法。我认为您可能想在失败的情况下发送电子邮件。

  4. 使用OS记录器. 。当您使用 Syslog 功能在PHP中,您可以将事件写入系统记录器(UNIX上的Syslog,Windows NT上的事件日志)。配置用户定义的Syslog使部署复杂化。

最后;您应该考虑是否要记录正常情况 例外或仅例外。杰夫·阿特伍德(Jeff Atwood)做得很好 写上去 对这个。

希望这可以帮助!

其他提示

使用以下记录功能 这个, ,使其通过配置您的wp-config.php来将您的登录写入debug.log。 这里:

/**
 * 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);

这至少适用于调试/开发目的(我不确定生产记录的效果如何,但它可以用于开发。)

我同意,将这些数据放入 wp_posts 可能会使桌子迅速增长到难以管理的尺寸。创建一个表是可以的。我会加倍努力,并在停止使用插件的情况下给某人清理日志表。

我不怕创建桌子的插件,但这也许是因为我看过8,000,000的WordPress数据库 wp_term_relationships 记录和300,000个帖子,我知道这种经历会有多么令人不愉快。

dbDelta()register_activation_hook() 将是您的朋友,这里。看 用插件创建表.

许可以下: CC-BY-SA归因
scroll top