@@ -49,6 +49,36 @@ class LoggerProxy implements LoggerInterface
49
49
*/
50
50
private $ logger ;
51
51
52
+ /**
53
+ * @var FileFactory
54
+ */
55
+ private $ fileFactory ;
56
+
57
+ /**
58
+ * @var QuietFactory
59
+ */
60
+ private $ quietFactory ;
61
+
62
+ /**
63
+ * @var bool
64
+ */
65
+ private $ loggerAlias ;
66
+
67
+ /**
68
+ * @var bool
69
+ */
70
+ private $ logAllQueries ;
71
+
72
+ /**
73
+ * @var float
74
+ */
75
+ private $ logQueryTime ;
76
+
77
+ /**
78
+ * @var bool
79
+ */
80
+ private $ logCallStack ;
81
+
52
82
/**
53
83
* LoggerProxy constructor.
54
84
* @param FileFactory $fileFactory
@@ -66,27 +96,36 @@ public function __construct(
66
96
$ logQueryTime = 0.001 ,
67
97
$ logCallStack = true
68
98
) {
69
- switch ($ loggerAlias ) {
70
- case self ::LOGGER_ALIAS_FILE :
71
- $ this ->logger = $ fileFactory ->create (
72
- [
73
- 'logAllQueries ' => $ logAllQueries ,
74
- 'logQueryTime ' => $ logQueryTime ,
75
- 'logCallStack ' => $ logCallStack ,
76
- ]
77
- );
78
- break ;
79
- default :
80
- $ this ->logger = $ quietFactory ->create ();
81
- break ;
82
- }
99
+ $ this ->fileFactory = $ fileFactory ;
100
+ $ this ->quietFactory = $ quietFactory ;
101
+ $ this ->loggerAlias = $ loggerAlias ;
102
+ $ this ->logAllQueries = $ logAllQueries ;
103
+ $ this ->logQueryTime = $ logQueryTime ;
104
+ $ this ->logCallStack = $ logCallStack ;
83
105
}
84
106
85
107
/**
108
+ * Get logger object. Initialize if needed.
86
109
* @return LoggerInterface
87
110
*/
88
111
public function getLogger ()
89
112
{
113
+ if ($ this ->logger === null ) {
114
+ switch ($ this ->loggerAlias ) {
115
+ case self ::LOGGER_ALIAS_FILE :
116
+ $ this ->logger = $ this ->fileFactory ->create (
117
+ [
118
+ 'logAllQueries ' => $ this ->logAllQueries ,
119
+ 'logQueryTime ' => $ this ->logQueryTime ,
120
+ 'logCallStack ' => $ this ->logCallStack ,
121
+ ]
122
+ );
123
+ break ;
124
+ default :
125
+ $ this ->logger = $ this ->quietFactory ->create ();
126
+ break ;
127
+ }
128
+ }
90
129
return $ this ->logger ;
91
130
}
92
131
@@ -98,7 +137,7 @@ public function getLogger()
98
137
*/
99
138
public function log ($ str )
100
139
{
101
- $ this ->logger ->log ($ str );
140
+ $ this ->getLogger () ->log ($ str );
102
141
}
103
142
104
143
/**
@@ -110,7 +149,7 @@ public function log($str)
110
149
*/
111
150
public function logStats ($ type , $ sql , $ bind = [], $ result = null )
112
151
{
113
- $ this ->logger ->logStats ($ type , $ sql , $ bind , $ result );
152
+ $ this ->getLogger () ->logStats ($ type , $ sql , $ bind , $ result );
114
153
}
115
154
116
155
/**
@@ -119,14 +158,14 @@ public function logStats($type, $sql, $bind = [], $result = null)
119
158
*/
120
159
public function critical (\Exception $ exception )
121
160
{
122
- $ this ->logger ->critical ($ exception );
161
+ $ this ->getLogger () ->critical ($ exception );
123
162
}
124
163
125
164
/**
126
165
* @return void
127
166
*/
128
167
public function startTimer ()
129
168
{
130
- $ this ->logger ->startTimer ();
169
+ $ this ->getLogger () ->startTimer ();
131
170
}
132
171
}
0 commit comments