PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.19.4
GiveWP – Donation Plugin and Fundraising Platform v2.19.4
4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / Log / Log.php
give / src / Log Last commit date
Admin 4 years ago Commands 4 years ago Helpers 4 years ago Migrations 4 years ago ValueObjects 4 years ago Assets.php 4 years ago Log.php 4 years ago LogFactory.php 4 years ago LogModel.php 4 years ago LogRepository.php 4 years ago LogServiceProvider.php 4 years ago
Log.php
136 lines
1 <?php
2
3 namespace Give\Log;
4
5 use Exception;
6 use Give\Log\Helpers\Environment;
7
8 /**
9 * Class Log
10 *
11 * The static facade intended to be the primary way of logging within GiveWP to make life easier.
12 *
13 * @package Give\Log
14 * @since 2.10.0
15 *
16 * @note There are two special keywords used in the context that are representing category and source.
17 * The default value for the Category is "Core" and for the source is "Give Core"
18 * If you want to change the category and/or source, you should provide them as context attributes.
19 * Source and category attributes should be written lowercase.
20 *
21 * @example
22 *
23 * Log::error( 'Error message', [
24 * 'category' => 'Payment',
25 * 'source' => 'Stripe add-on'
26 * ] );
27 *
28 * @note Use as many contexts attributes as you need. The more the better.
29 *
30 * @example
31 *
32 * Log::error( 'Error message', [
33 * 'category' => 'Payment',
34 * 'source' => 'Stripe add-on',
35 * 'donation_id' => $donationId,
36 * 'donor_id' => $donorId
37 * ] );
38 *
39 * @note You can use an array or object as a context attribute value.
40 *
41 * @example
42 *
43 * try {
44 * something();
45 * } catch ( Exception $exception ) {
46 * Log::error( 'Something went wrong', [
47 * 'exception' => $exception,
48 * 'additional_info' => [
49 * 'donation_id' => $donationId
50 * ]
51 * ] );
52 * }
53 *
54 *
55 * @method static error(string $message, array $context = [])
56 * @method static warning(string $message, array $context = [])
57 * @method static notice(string $message, array $context = [])
58 * @method static success(string $message, array $context = [])
59 * @method static info(string $message, array $context = [])
60 * @method static http(string $message, array $context = [])
61 * @method static spam(string $message, array $context = [])
62 */
63 class Log
64 {
65 public function __call($name, $arguments)
66 {
67 list ($message, $context) = array_pad($arguments, 2, null);
68
69 if (is_array($context)) {
70 // Convert context values to string
71 $context = array_map(
72 function ($item) {
73 if (is_array($item) || is_object($item)) {
74 $item = print_r($item, true);
75 }
76
77 return $item;
78 },
79 $context
80 );
81
82 // Default fields
83 $data = array_filter(
84 $context,
85 function ($key) {
86 return array_key_exists($key, LogFactory::getDefaults());
87 },
88 ARRAY_FILTER_USE_KEY
89 );
90
91 // Additional context
92 $data['context'] = array_diff(
93 $context,
94 $data
95 );
96 }
97
98 // Set message
99 if (!is_null($message)) {
100 $data['message'] = $message;
101 }
102
103 // Set type
104 $data['type'] = $name;
105
106 try {
107 $log = LogFactory::makeFromArray($data);
108 $log->save();
109
110 return $log;
111 } catch (Exception $exception) {
112 error_log($exception->getMessage());
113 }
114 }
115
116 /**
117 * Static helper for calling the logger methods
118 *
119 * @param string $name
120 * @param array $arguments
121 *
122 * @since 2.18.0 - always log errors, warnings & only log all if WP_DEBUG_LOG is enabled
123 * @since 2.11.1
124 *
125 */
126 public static function __callStatic($name, $arguments)
127 {
128 /** @var Log $logger */
129 $logger = give(__CLASS__);
130
131 if (in_array($name, ['error', 'warning']) || Environment::isDebugLoggingEnabled()) {
132 call_user_func_array([$logger, $name], $arguments);
133 }
134 }
135 }
136