2
2
3
3
#include "fpm_config.h"
4
4
5
+ #include "SAPI.h"
6
+ #include "php.h"
7
+
5
8
#include <stdio.h>
6
9
#include <unistd.h>
7
10
#include <time.h>
10
13
#include <sys/time.h>
11
14
#include <errno.h>
12
15
16
+ #include "zend.h"
17
+ #include "zend_extensions.h"
18
+ #include "php_ini.h"
19
+ #include "php_globals.h"
20
+ #include "php_main.h"
13
21
#include "php_syslog.h"
14
22
15
23
#include "zlog.h"
16
24
#include "fpm.h"
25
+ #include "fastcgi.h"
17
26
#include "zend_portability.h"
18
27
19
28
/* buffer is used for fmt result and it should never be over 2048 */
@@ -134,7 +143,7 @@ static inline size_t zlog_truncate_buf(char *buf, size_t buf_size, size_t space_
134
143
/* }}} */
135
144
136
145
static inline void zlog_external (
137
- int flags , char * buf , size_t buf_size , const char * fmt , va_list args ) /* {{{ */
146
+ int flags , char * buf , size_t buf_size , char * url , size_t url_len , const char * fmt , va_list args ) /* {{{ */
138
147
{
139
148
va_list ap ;
140
149
size_t len ;
@@ -143,6 +152,10 @@ static inline void zlog_external(
143
152
len = vsnprintf (buf , buf_size , fmt , ap );
144
153
va_end (ap );
145
154
155
+ if (url_len > 0 && buf_size > len ) {
156
+ len += snprintf (buf + len , buf_size - len , "%s" , url );
157
+ }
158
+
146
159
if (len >= buf_size ) {
147
160
len = zlog_truncate_buf (buf , buf_size , 0 );
148
161
}
@@ -193,13 +206,23 @@ static size_t zlog_buf_prefix(
193
206
void vzlog (const char * function , int line , int flags , const char * fmt , va_list args ) /* {{{ */
194
207
{
195
208
char buf [MAX_BUF_LENGTH ];
209
+ char url [MAX_BUF_LENGTH ];
210
+ size_t url_len = 0 ;
196
211
size_t buf_size = MAX_BUF_LENGTH ;
197
212
size_t len = 0 ;
198
213
int truncated = 0 ;
199
214
int saved_errno ;
215
+ char * server_name , * document_uri ;
216
+ fcgi_request * request = (fcgi_request * ) SG (server_context );
217
+
218
+ if (request ) {
219
+ server_name = FCGI_GETENV (request , "SERVER_NAME" );
220
+ document_uri = FCGI_GETENV (request , "DOCUMENT_URI" );
221
+ url_len = snprintf (url , sizeof (url ), " URI: %s%s" , server_name ? server_name : "*unknown*" , document_uri ? document_uri : "*unknown_uri*" );
222
+ }
200
223
201
224
if (external_logger ) {
202
- zlog_external (flags , buf , buf_size , fmt , args );
225
+ zlog_external (flags , buf , buf_size , url , url_len , fmt , args );
203
226
}
204
227
205
228
if ((flags & ZLOG_LEVEL_MASK ) < zlog_level ) {
@@ -213,6 +236,11 @@ void vzlog(const char *function, int line, int flags, const char *fmt, va_list a
213
236
truncated = 1 ;
214
237
} else {
215
238
len += vsnprintf (buf + len , buf_size - len , fmt , args );
239
+
240
+ if (url_len > 0 && buf_size > len ) {
241
+ len += snprintf (buf + len , buf_size - len , "%s" , url );
242
+ }
243
+
216
244
if (len >= buf_size ) {
217
245
truncated = 1 ;
218
246
}
0 commit comments