it-swarm-vi.tech

Làm cách nào để tôi đăng nhập các hành động của plugin (cron)?

Có cách nào được đề xuất để ghi lại các hành động cron (không thành công) từ plugin của bạn không? Ví dụ: tôi có một plugin đồng bộ hóa với một dịch vụ bên ngoài mỗi giờ. Tôi muốn đăng nhập bao nhiêu đã được thay đổi, nhưng cũng có khi không đồng bộ hóa. Bạn muốn giới thiệu gì ở đây? Một bảng cơ sở dữ liệu mới? Thông báo không được đăng nhập plugin thực hiện việc này với loại bài đăng tùy chỉnh, nhưng điều này có thể quá nhiều chi phí? Tôi tin rằng WordPress không đi kèm với gói ghi nhật ký tiêu chuẩn ?

6
Jan Fabry
  1. Sử dụng tệpđể ghi các sự kiện vào. Có một số nhược điểm ở đây;

    • Quyền hệ thống tập tin . Khi bạn triển khai ứng dụng của mình, bạn sẽ phải cẩn thận để nhớ cho phép máy chủ web ghi vào tệp. Và để chắc chắn hơn, bạn phải viết mã để kiểm tra xem bạn có thể ghi vào tệp hay không và đưa ra cảnh báo khi bạn không thể. Điều này thêm phức tạp và có khả năng là một nguyên nhân cho các vấn đề triển khai.
    • Xóa ngẫu nhiên . Bạn có thể vô tình xóa logfile tùy chỉnh và mất hồ sơ của bạn. Điều này có thể bất tiện.
    • Logformat tùy chỉnh . Bạn sẽ phải đưa ra một định dạng văn bản tùy chỉnh (máy có thể đọc được?) Để ghi các sự kiện vào tệp của bạn. Khi bạn phải thay đổi định dạng nhật ký, không có cách nào thuận tiện để di chuyển các bản ghi cũ. Khi bạn muốn thực hiện một số loại phân tích trên nhật ký, bạn phải phân tích các bản ghi. Điều này dẫn đến nhiều mã hơn và phức tạp hơn. Phức tạp là xấu.
  2. Sử dụng bảng cơ sở dữ liệu. Tạo bảng cơ sở dữ liệu của riêng bạn và đăng nhập các sự kiện ở đó. Không có nhược điểm nào được liệt kê ở trên áp dụng. Nó không thêm nhiều phức tạp. Tự động hóa việc tạo và xóa bảng bằng cách sử dụng một plugin hook và bạn có một hệ thống nhật ký hợp lý đáng tin cậy mà tôi nghĩ.

  3. Gửi e-mail. Tùy thuộc vào mức độ liên quan của nhật ký, bạn luôn có thể chọn phương pháp này. Tôi nghĩ rằng bạn có thể muốn gửi e-mail trong trường hợp thất bại.

  4. Sử dụng bộ ghi nhật ký hệ điều hành. Khi bạn sử dụng hàm syslog trong PHP, bạn có thể viết các sự kiện vào bộ ghi hệ thống (syslog trên Unix, Nhật ký sự kiện trên Windows NT). Cấu hình một syslog do người dùng định nghĩa làm phức tạp việc triển khai.

Cuối cùng; bạn nên xem xét nếu bạn muốn ghi nhật ký trường hợp bình thườngngoại lệ, hoặc chỉ ngoại lệ. Jeff Atwood đã làm tốt writeup về điều này.

Hi vọng điêu nay co ich!

6
Wietse Venema

Sử dụng chức năng ghi nhật ký như this , để nó ghi nhật ký của bạn vào debug.log bằng cách định cấu hình wp-config.php của bạn với cái sau mà tôi tìm thấy ở đây :

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

Điều này sẽ hoạt động cho mục đích gỡ lỗi/phát triển ít nhất (Tôi không chắc nó sẽ tuyệt vời như thế nào khi ghi nhật ký sản xuất, nhưng nó hoạt động để phát triển.)

6
leeand00

Tôi đồng ý, việc đưa dữ liệu này vào wp_posts có khả năng khiến bảng phát triển nhanh chóng đến kích thước không thể quản lý được. Thật tốt khi tạo một cái bàn. Tôi sẽ đi xa hơn và cho ai đó cách dọn dẹp bảng nhật ký trong trường hợp họ ngừng sử dụng plugin của họ.

Tôi không sợ các plugin tạo bảng, nhưng có lẽ đó là vì tôi đã thấy cơ sở dữ liệu WordPress với 8.000.000 bản ghi wp_term_relationships và 300.000 bài đăng và tôi biết trải nghiệm đó có thể khó chịu đến mức nào.

dbDelta()register_activation_hook() sẽ là bạn của bạn ở đây. Xem Tạo bảng bằng plugin .

2
Annika Backstrom