PluginProbe ʕ •ᴥ•ʔ
Tracking Code Manager / 2.2.0
Tracking Code Manager v2.2.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 3 years ago Ecommerce.php 3 years ago Language.php 3 years ago Logger.php 3 years ago MobileDetect.php 3 years ago Options.php 3 years ago Plugin.php 3 years ago Properties.php 3 years ago Tracking.php 3 years ago Utils.php 2 years 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