51 #if !defined (WINDOWS) 55 #define EVENT_LOG_FILE_DIR "server" 56 #define EVENT_LOG_FILE_SUFFIX ".event" 72 char *s, *base_db_name;
75 struct tm log_tm, *log_tm_p = &log_tm;
76 char event_log_name[PATH_MAX];
82 s = strchr (local_db_name,
'@');
88 base_db_name =
basename ((
char *) local_db_name);
89 if (base_db_name ==
NULL)
94 log_time = time (
NULL);
95 #if defined (SERVER_MODE) && !defined (WINDOWS) 96 log_tm_p = localtime_r (&log_time, &log_tm);
98 log_tm_p = localtime (&log_time);
101 if (log_tm_p ==
NULL)
107 base_db_name, log_tm_p->tm_year + 1900, log_tm_p->tm_mon + 1, log_tm_p->tm_mday, log_tm_p->tm_hour,
123 char dir[PATH_MAX], *tpath;
136 if (
cub_dirname_r (tpath, dir, PATH_MAX) > 0 && access (dir, F_OK) < 0)
138 if (mkdir (dir, 0777) < 0 && errno == ENOENT)
158 fp = fopen (path,
"r+");
161 fseek (fp, 0, SEEK_END);
169 fp = fopen (path,
"w");
172 #if !defined (WINDOWS) && defined (SERVER_MODE) 190 char backup_file[PATH_MAX];
196 sprintf (backup_file,
"%s.bak", path);
197 (void) unlink (backup_file);
198 (void) rename (path, backup_file);
200 return fopen (path,
"w");
226 struct tm *er_tm_p = &er_tm;
228 char time_array[256];
234 if (
event_Fp ==
NULL || access (log_file_name, F_OK) == -1)
262 er_time = time (
NULL);
263 #if defined (SERVER_MODE) && !defined (WINDOWS) 264 er_tm_p = localtime_r (&er_time, &er_tm);
266 er_tm_p = localtime (&er_time);
271 strcpy (time_array,
"00/00/00 00:00:00.000");
275 gettimeofday (&tv,
NULL);
276 snprintf (time_array + strftime (time_array, 128,
"%m/%d/%y %H:%M:%S", er_tm_p), 255,
".%03ld",
280 fprintf (
event_Fp,
"%s - %s\n", time_array, event_name);
322 fprintf (
event_Fp,
"%*c", indent,
' ');
337 const char *prog, *user, *
host;
349 fprintf (
event_Fp,
"%*c", indent,
' ');
351 fprintf (
event_Fp,
"client: %s@%s|%s(%d)\n", user, host, prog, pid);
368 fprintf (log_fp,
"%*csql: ", indent,
' ');
426 fprintf (log_fp,
"%*cbind: %s\n", indent,
' ', (val_str ==
NULL) ?
"(null)" : val_str);
447 int flush_wait_time,
int writer_time)
458 fprintf (log_fp,
"%*ctotal flush count: %d page(s)\n", indent,
' ', flush_count);
459 fprintf (log_fp,
"%*ctotal flush time: %d ms\n", indent,
' ', flush_time);
460 fprintf (log_fp,
"%*ctime waiting for log writer: %d ms\n", indent,
' ', flush_wait_time);
461 fprintf (log_fp,
"%*clast log writer info\n", indent,
' ');
465 fprintf (log_fp,
"%*ctime spent by last log writer: %d ms\n", indent,
' ', writer_time);
char * envvar_logdir_file(char *path, size_t size, const char *filename)
#define EVENT_LOG_FILE_DIR
int xcache_find_sha1(THREAD_ENTRY *thread_p, const SHA1Hash *sha1, const XASL_CACHE_SEARCH_MODE search_mode, XASL_CACHE_ENTRY **xcache_entry, xasl_cache_rt_check_result *rt_check)
#define EVENT_EMPTY_QUERY
void event_log_sql_string(THREAD_ENTRY *thread_p, FILE *log_fp, XASL_ID *xasl_id, int indent)
#define csect_enter(a, b, c)
const char * get_host_name() const
FILE * event_log_start(THREAD_ENTRY *thread_p, const char *event_name)
LOG_TDES * LOG_FIND_TDES(int tran_index)
static void event_log_print_client_ids_info(CLIENTIDS *client_info, int indent)
void er_set(int severity, const char *file_name, const int line_no, int err_id, int num_args,...)
db_client_type client_type
#define csect_check_own(a, b)
const char * get_program_name() const
static FILE * event_file_backup(FILE *fp, const char *path)
int prm_get_integer_value(PARAM_ID prm_id)
void event_log_log_flush_thr_wait(THREAD_ENTRY *thread_p, int flush_count, clientids *client_info, int flush_time, int flush_wait_time, int writer_time)
static char event_log_file_path[PATH_MAX]
#define ER_OUT_OF_VIRTUAL_MEMORY
#define DB_MAX_IDENTIFIER_LENGTH
void xcache_unfix(THREAD_ENTRY *thread_p, XASL_CACHE_ENTRY *xcache_entry)
void event_log_bind_values(THREAD_ENTRY *thread_p, FILE *log_fp, int tran_index, int bind_index)
int cub_dirname_r(const char *path, char *pathbuf, size_t buflen)
void event_log_final(void)
void event_log_end(THREAD_ENTRY *thread_p)
#define db_private_free(thrd, ptr)
DB_VALUE_ARRAY bind_history[MAX_NUM_EXEC_QUERY_HISTORY]
void event_log_print_client_info(int tran_index, int indent)
const char * get_db_user() const
#define free_and_init(ptr)
int logtb_find_client_name_host_pid(int tran_index, const char **client_prog_name, const char **client_user_name, const char **client_host_name, int *client_pid)
char * basename(const char *path)
static FILE * event_file_open(const char *path)
char * pr_valstring(const DB_VALUE *val)
#define XASL_ID_IS_NULL(X)
char * strdup(const char *str)
void event_log_init(const char *db_name)
#define EVENT_LOG_FILE_SUFFIX