class-wc-laybuy-logger.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. if ( ! defined( 'ABSPATH' ) ) {
  3. exit; // Exit if accessed directly
  4. }
  5. /**
  6. * Log all things!
  7. *
  8. * @since 4.0.0
  9. * @version 4.0.0
  10. */
  11. class WC_Laybuy_Logger {
  12. public static $logger;
  13. public static $enabled;
  14. const WC_LOG_FILENAME = 'laybuy';
  15. /**
  16. * Utilize WC logger class
  17. *
  18. * @since 4.0.0
  19. * @version 4.0.0
  20. */
  21. public static function log( $message, $start_time = null, $end_time = null ) {
  22. if ( ! class_exists( 'WC_Logger' ) ) {
  23. return;
  24. }
  25. if ( !self::$enabled ) {
  26. return;
  27. }
  28. if ( apply_filters( 'wc_laybuy_logging', true, $message ) ) {
  29. if ( empty( self::$logger ) ) {
  30. if ( WC_Laybuy_Helper::is_wc_lt( '3.0' ) ) {
  31. self::$logger = new WC_Logger();
  32. } else {
  33. self::$logger = wc_get_logger();
  34. }
  35. }
  36. if ( ! is_null( $start_time ) ) {
  37. $formatted_start_time = date_i18n( get_option( 'date_format' ) . ' g:ia', $start_time );
  38. $end_time = is_null( $end_time ) ? current_time( 'timestamp' ) : $end_time;
  39. $formatted_end_time = date_i18n( get_option( 'date_format' ) . ' g:ia', $end_time );
  40. $elapsed_time = round( abs( $end_time - $start_time ) / 60, 2 );
  41. $log_entry = "\n" . '====Laybuy Version: ' . WC_LAYBUY_VERSION . '====' . "\n";
  42. $log_entry .= '====Start Log ' . $formatted_start_time . '====' . "\n" . $message . "\n";
  43. $log_entry .= '====End Log ' . $formatted_end_time . ' (' . $elapsed_time . ')====' . "\n\n";
  44. } else {
  45. $log_entry = "\n" . '====Laybuy Version: ' . WC_LAYBUY_VERSION . '====' . "\n";
  46. $log_entry .= '====Start Log====' . "\n" . $message . "\n" . '====End Log====' . "\n\n";
  47. }
  48. if ( WC_Laybuy_Helper::is_wc_lt( '3.0' ) ) {
  49. self::$logger->add( self::WC_LOG_FILENAME, $log_entry );
  50. } else {
  51. self::$logger->debug( $log_entry, array( 'source' => self::WC_LOG_FILENAME ) );
  52. }
  53. }
  54. }
  55. public static function info($message, $start_time = null, $end_time = null) {
  56. return self::log("Info: {$message}", $start_time, $end_time);
  57. }
  58. public static function error($message, $start_time = null, $end_time = null) {
  59. return self::log("Error: {$message}", $start_time, $end_time);
  60. }
  61. }