PluginProbe ʕ •ᴥ•ʔ
Tracking Code Manager / 2.5.0
Tracking Code Manager v2.5.0
trunk 1.11.8 1.11.9 1.12.0 1.12.1 1.12.2 1.12.3 1.4 1.5 2.0.0 2.0.1 2.0.13 2.0.14 2.0.15 2.0.16 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.2.0 2.3.0 2.4.0 2.5.0 2.6.0
tracking-code-manager / includes / classes / utils / Logger.php
tracking-code-manager / includes / classes / utils Last commit date
Cron.php 1 year ago Ecommerce.php 1 year ago Language.php 1 year ago Logger.php 1 year ago MobileDetect.php 1 year ago Options.php 1 year ago Plugin.php 1 year ago Properties.php 1 year ago Tracking.php 1 year ago Utils.php 1 year ago
Logger.php
90 lines
1 <?php
2
3 // Exit if accessed directly
4 if ( ! defined( 'ABSPATH' ) ) {
5 exit;
6 }
7
8 class TCMP_Logger {
9 private $name;
10 private $context = array();
11
12 public function __construct( $name = 'TCMP' ) {
13 if ( '' == $name ) {
14 $name = 'TCMP';
15 }
16 $this->name = $name;
17 }
18
19 public function pushContext( $context ) {
20 array_push( $this->context, $context );
21 }
22 public function popContext() {
23 array_pop( $this->context );
24 }
25
26 public function fatal( $message, $v1 = null, $v2 = null, $v3 = null, $v4 = null, $v5 = null, $v6 = null ) {
27 $what = $this->write( '[FATAL]', $message, $v1, $v2, $v3, $v4, $v5, $v6 );
28 die( $what );
29 }
30 public function debug( $message, $v1 = null, $v2 = null, $v3 = null, $v4 = null, $v5 = null, $v6 = null ) {
31 $this->write( '[DEBUG]', $message, $v1, $v2, $v3, $v4, $v5, $v6 );
32 }
33 public function info( $message, $v1 = null, $v2 = null, $v3 = null, $v4 = null, $v5 = null, $v6 = null ) {
34 $this->write( '[INFO] ', $message, $v1, $v2, $v3, $v4, $v5, $v6 );
35 }
36 public function error( $message, $v1 = null, $v2 = null, $v3 = null, $v4 = null, $v5 = null, $v6 = null ) {
37 $this->write( '[ERROR]', $message, $v1, $v2, $v3, $v4, $v5, $v6 );
38 }
39 private function dump( $v ) {
40 if ( is_array( $v ) && 0 == count( $v ) ) {
41 $v = '[]';
42 }
43 if ( null != $v ) {
44 if ( is_array( $v ) || is_object( $v ) ) {
45 $v = print_r( $v, true );
46 }
47 }
48 if ( is_bool( $v ) ) {
49 $v = ( $v ? 'TRUE' : 'FALSE' );
50 }
51 return $v;
52 }
53 private function write( $verbosity, $message, $v1 = null, $v2 = null, $v3 = null, $v4 = null, $v5 = null, $v6 = null ) {
54 global $tcmp;
55
56 $text = sprintf(
57 $message,
58 $this->dump( $v1 ),
59 $this->dump( $v2 ),
60 $this->dump( $v3 ),
61 $this->dump( $v4 ),
62 $this->dump( $v5 ),
63 $this->dump( $v6 )
64 );
65 $message = date( 'd/m/Y H:i:s' ) . ' ' . $verbosity . ' ';
66 if ( count( $this->context ) > 0 ) {
67 $message .= '{' . $this->context[ count( $this->context ) - 1 ] . '} ';
68 }
69 $message = "\n" . $message . $text;
70 if ( ! $tcmp->options->isLoggerEnable() ) {
71 return $message;
72 }
73
74 $hasErrors = false;
75 $filename = TCMP_PLUGIN_DIR . 'logs/' . $this->name . '_' . date( 'Ym' ) . '.txt';
76 if ( ! $handle = fopen( $filename, 'a' ) ) {
77 $hasErrors = true;
78 }
79
80 if ( ! $hasErrors && fwrite( $handle, $message ) === false ) {
81 $hasErrors = true;
82 }
83
84 if ( ! $hasErrors ) {
85 fclose( $handle );
86 }
87 return $message;
88 }
89 }
90