32 #define PROXY_LOG_BUFFER_SIZE (8192) 34 static char *
make_proxy_log_filename (
char *filepath_buf,
size_t buf_size,
const char *br_name,
int proxy_index);
39 static FILE *
log_open (
char *log_file_name);
42 static int error_file_offset;
43 static char cas_log_error_flag;
73 if (snprintf (filepath_buf, buf_size,
"%s/%s_%d.log", dirname, br_name, proxy_index + 1) < 0)
75 filepath_buf[0] =
'\0';
99 fseek (
log_fp, 0, SEEK_END);
150 unlink (backup_filepath);
162 log_fpos = ftell (
log_fp);
163 if ((log_fpos / 1000) > log_size_max)
177 int write_len, remain, n;
188 if (svc_code ==
NULL)
201 else if (n >= remain)
211 n = vsnprintf (p, remain, fmt, ap);
216 else if (n >= remain)
227 fwrite (buf, write_len, 1,
log_fp);
230 if (do_flush ==
true)
277 char *access_log_file;
280 char *clt_appl =
NULL;
285 struct timeval end_time;
289 gettimeofday (&end_time,
NULL);
291 t1 = start_time->tv_sec;
292 t2 = end_time.tv_sec;
293 #if defined (WINDOWS) 294 if (localtime_s (&ct1, &t1) != 0 || localtime_s (&ct2, &t2) != 0)
296 if (localtime_r (&t1, &ct1) ==
NULL || localtime_r (&t2, &ct2) ==
NULL)
325 script = (
char *)
"-";
326 if (clt_appl ==
NULL || clt_appl[0] ==
'\0')
327 clt_appl = (
char *)
"-";
331 for (p = clt_appl; *
p; p++)
333 if (*p ==
' ' || *p ==
'\t' || *p ==
'\n' || *p ==
'\r')
338 if (error_file_offset >= 0)
339 sprintf (err_str,
"ERR");
342 sprintf (err_str,
"-");
345 "%s %s %s %d.%03d %d.%03d %02d/%02d/%02d %02d:%02d:%02d ~ " 346 "%02d/%02d/%02d %02d:%02d:%02d %d %s %d %s %s %s\n", clt_ip, clt_appl, script, (
int) start_time->tv_sec,
347 (
int) (start_time->tv_usec / 1000), (
int) end_time.tv_sec, (
int) (end_time.tv_usec / 1000), ct1.tm_year,
348 ct1.tm_mon + 1, ct1.tm_mday, ct1.tm_hour, ct1.tm_min, ct1.tm_sec, ct2.tm_year, ct2.tm_mon + 1, ct2.tm_mday,
349 ct2.tm_hour, ct2.tm_min, ct2.tm_sec, (
int) getpid (), err_str, -1, dbname, dbuser,
350 ((accepted) ?
"" :
" : rejected"));
353 return (end_time.tv_sec - start_time->tv_sec);
374 if (log_file_name ==
NULL)
377 fp = fopen (log_file_name,
"a");
382 tmp_filename =
strdup (log_file_name);
383 if (tmp_filename ==
NULL)
387 tmp_dirname =
dirname (tmp_filename);
388 ret = mkdir (tmp_dirname, 0777);
392 fp = fopen (log_file_name,
"a");
char access_log_file[CONF_LOG_FILE_LEN]
char * dirname(const char *path)
char proxy_log_dir[CONF_LOG_FILE_LEN]
#define PROXY_LOG_BUFFER_SIZE
int proxy_access_log(struct timeval *start_time, int client_ip_addr, const char *dbname, const char *dbuser, bool accepted)
int ut_time_string(char *buf, struct timeval *time_val)
char broker_name[BROKER_NAME_LEN]
static void proxy_log_reset(void)
static char * make_proxy_log_filename(char *filepath_buf, size_t buf_size, const char *br_name, int proxy_index)
static const char * proxy_log_level_str[]
static void proxy_log_backup(void)
static FILE * log_open(char *log_file_name)
T_SHM_APPL_SERVER * shm_as_p
int proxy_log_get_level(void)
static FILE * access_log_fp
static struct timeval start_time
int proxy_access_log_reset
void proxy_access_log_close(void)
void proxy_log_open(char *br_name, int proxy_index)
static char log_filepath[BROKER_PATH_MAX]
void proxy_log_close(void)
char * strdup(const char *str)
char * ut_uchar2ipstr(unsigned char *ip_addr)
T_PROXY_INFO * proxy_info_p
static void proxy_log_write_internal(int level, char *svc_code, bool do_flush, const char *fmt, va_list ap)
T_SHM_PROXY * shm_proxy_p
void proxy_log_write(int level, char *svc_code, const char *fmt,...)