如何记录插件(CRON)操作?
-
16-10-2019 - |
题
是否有推荐的方法来记录插件的CRON操作?例如,我的插件每小时都与外部服务同步。我想记录更改的数量,以及同步失败时。您会在这里推荐什么?一个新的数据库表?这 日志弃用通知 插件使用自定义帖子类型进行操作,但这可能太多了?我相信 WordPress不带有标准记录包?
解决方案
使用文件 将事件写入。这里有几个缺点。
- 文件系统权限. 。部署应用程序时,您将必须注意记住要授予WebServer许可以写入文件。要肯定的是,您必须编写代码,以检查是否可以写入文件并在不能写警告。这增加了复杂性,可能是部署问题的原因。
- 意外删除. 。您可能会意外删除自定义日志文件并丢失记录。这可能不便。
- 自定义logformat. 。您必须提出一个自定义(机器可读?)文本格式才能将事件写入您的文件。当您必须更改日志格式时,就没有方便的方式来迁移旧记录。当您想对日志进行某种分析时,就必须解析记录。这导致了更多的代码和更复杂的性能。复杂性不好。
使用数据库表. 。创建自己的数据库表并在那里记录事件。上面列出的所有缺点都不适用。它并没有增加很多复杂性。使用插件挂钩自动化表的创建和删除,您认为您有一个相当可靠的日志系统。
发送电子邮件. 。根据日志的相关性,您始终可以选择此方法。我认为您可能想在失败的情况下发送电子邮件。
使用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()
将是您的朋友,这里。看 用插件创建表.