如何记录插件(Cron)操作?

时间:2010-09-02 作者:Jan Fabry

是否有推荐的方法从插件中记录(失败的)cron操作?例如,我有一个插件,它每小时与外部服务同步一次。我想记录更改了多少,以及同步失败的时间。你有什么建议吗?新的数据库表?这个Log Deprecated Notices 插件使用自定义的帖子类型来实现这一点,但这可能会带来太多的开销?我相信WordPress does not come with a standard logging package?

3 个回复
最合适的回答,由SO网友:Wietse Venema 整理而成

  1. Use a file 将事件写入。这里有几个缺点;

    文件系统权限。部署应用程序时,您必须注意记住授予Web服务器写入文件的权限。另外,您必须编写代码来检查是否可以写入文件,并在无法写入时发出警告。这增加了复杂性,可能是导致部署问题的原因自定义日志格式。你必须想出一个自定义(机器可读?)将事件写入文件的文本格式。当您必须更改日志格式时,无法方便地迁移旧记录。当您想对日志进行某种分析时,必须解析记录。这会导致更多的代码和更高的复杂性。复杂性很差

  2. Use a database table. 创建自己的数据库表并在其中记录事件。上述缺点均不适用。这并没有增加太多的复杂性。使用插件挂钩自动创建和删除表,我认为您有一个合理可靠的日志系统。

  3. Send an e-mail. 根据日志的相关性,您始终可以选择此方法。我想你可能会想发送一封电子邮件,以防出现故障。

  4. Use the OS logger. 当你使用syslog 函数,您可以将事件写入系统记录器(Unix上的syslog,Windows NT上的事件日志)。配置用户定义的系统日志会使部署复杂化。

最后;您应该考虑是要记录正常情况和异常,还是只记录异常。杰夫·阿特伍德做得很好writeup 关于这个。

希望这有帮助!

SO网友:leeand00

使用日志功能,如this, 这样它就可以将您的日志写出来进行调试。通过配置wp配置来登录。php,我发现here:

/**
 * 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);
这至少可以用于调试/开发目的(我不确定这对于生产日志记录有多好,但它可以用于开发。)

SO网友:Annika Backstrom

我同意,把这些数据放进去wp_posts 可能会使表快速增长到无法管理的大小。可以创建一个表。如果有人停止使用插件,我会加倍努力,为他们提供清理日志表的方法。

我并不害怕创建表的插件,但可能是因为我看到WordPress数据库有8000000个wp_term_relationships 记录和300000个帖子,我知道这种经历有多不愉快。

dbDelta()register_activation_hook() 将是你的朋友,在这里。看见Creating Tables with Plugins.

结束

相关推荐