From 6080cb17e1897003db48eea8d9179c05e2c35eb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Canna=C3=B2?= Date: Tue, 11 Aug 2015 07:49:15 +0000 Subject: [PATCH] Improved logging with proxy_info() --- include/proxysql_debug.h | 24 ++++++++++++++++++++++++ lib/ProxySQL_Admin.cpp | 1 + lib/ProxySQL_GloVars.cpp | 2 +- src/main.cpp | 33 +++++++++++++++++++++------------ 4 files changed, 47 insertions(+), 13 deletions(-) diff --git a/include/proxysql_debug.h b/include/proxysql_debug.h index 91e1c0c74..f2b00ad65 100644 --- a/include/proxysql_debug.h +++ b/include/proxysql_debug.h @@ -71,6 +71,30 @@ extern int gdbg; } while(0) #endif +#ifdef DEBUG +#define proxy_info(fmt, ...) \ + do { \ + time_t __timer; \ + char __buffer[25]; \ + struct tm *__tm_info; \ + time(&__timer); \ + __tm_info = localtime(&__timer); \ + strftime(__buffer, 25, "%Y-%m-%d %H:%M:%S", __tm_info); \ + proxy_error_func("%s %s:%d:%s(): [INFO] " fmt, __buffer, __FILE__, __LINE__, __func__ , ## __VA_ARGS__); \ + } while(0) +#else +#define proxy_info(fmt, ...) \ + do { \ + time_t __timer; \ + char __buffer[25]; \ + struct tm *__tm_info; \ + time(&__timer); \ + __tm_info = localtime(&__timer); \ + strftime(__buffer, 25, "%Y-%m-%d %H:%M:%S", __tm_info); \ + proxy_error_func("%s [INFO] " fmt , __buffer , ## __VA_ARGS__); \ + } while(0) +#endif + //void proxy_debug_func(enum debug_module, int, const char *, ...); //void proxy_debug_func(enum debug_module, int, int, const char *, int, const char *, const char *, ...); //void proxy_error_func(const char *, ...); diff --git a/lib/ProxySQL_Admin.cpp b/lib/ProxySQL_Admin.cpp index 628aeca15..1d5ab9404 100644 --- a/lib/ProxySQL_Admin.cpp +++ b/lib/ProxySQL_Admin.cpp @@ -2756,6 +2756,7 @@ extern "C" void destroy_Admin(ProxySQL_Admin * pa) { } void ProxySQL_Admin::flush_error_log() { + if (GloVars.global.foreground==true) return; int outfd=0; int errfd=0; outfd=open(GloVars.errorlog, O_WRONLY | O_APPEND | O_CREAT , S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP); diff --git a/lib/ProxySQL_GloVars.cpp b/lib/ProxySQL_GloVars.cpp index cc6558a49..9f642c19b 100644 --- a/lib/ProxySQL_GloVars.cpp +++ b/lib/ProxySQL_GloVars.cpp @@ -6,7 +6,7 @@ static void term_handler(int sig) { - proxy_error("Received TERM signal: shutdown in progress...\n"); + proxy_warning("Received TERM signal: shutdown in progress...\n"); #ifdef DEBUG #endif __sync_bool_compare_and_swap(&glovars.shutdown,0,1); diff --git a/src/main.cpp b/src/main.cpp index 77fef1aa1..48770c053 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -398,7 +398,7 @@ void ProxySQL_daemonize_wait_daemon() { int ret; /* Wait for 20 seconds for the return value passed from the daemon process */ if ((ret = daemon_retval_wait(20)) < 0) { - daemon_log(LOG_ERR, "Could not recieve return value from daemon process: %s", strerror(errno)); + daemon_log(LOG_ERR, "Could not receive return value from daemon process: %s", strerror(errno)); exit(EXIT_FAILURE); } @@ -435,8 +435,10 @@ bool ProxySQL_daemonize_phase2() { /* Send OK to parent process */ daemon_retval_send(0); GloAdmin->flush_error_log(); - daemon_log(LOG_INFO, "Starting ProxySQL\n"); - daemon_log(LOG_INFO, "Sucessfully started"); + //daemon_log(LOG_INFO, "Starting ProxySQL\n"); + //daemon_log(LOG_INFO, "Sucessfully started"); + proxy_info("Starting ProxySQL\n"); + proxy_info("Sucessfully started\n"); return true; } @@ -444,7 +446,8 @@ bool ProxySQL_daemonize_phase2() { bool ProxySQL_daemonize_phase3() { int rc; int status; - daemon_log(LOG_INFO, "Angel process started ProxySQL process %d\n", pid); + //daemon_log(LOG_INFO, "Angel process started ProxySQL process %d\n", pid); + proxy_info("Angel process started ProxySQL process %d\n", pid); rc=waitpid(pid, &status, 0); if (rc==-1) { perror("waitpid"); @@ -455,14 +458,17 @@ bool ProxySQL_daemonize_phase3() { if (rc) { // client exit()ed rc=WEXITSTATUS(status); if (rc==0) { - daemon_log(LOG_INFO, "Shutdown angel process\n"); + //daemon_log(LOG_INFO, "Shutdown angel process\n"); + proxy_info("Shutdown angel process\n"); exit(EXIT_SUCCESS); } else { - daemon_log(LOG_INFO, "ProxySQL exited with code %d . Restarting!\n", rc); - return false;; + //daemon_log(LOG_INFO, "ProxySQL exited with code %d . Restarting!\n", rc); + proxy_error("ProxySQL exited with code %d . Restarting!\n", rc); + return false; } } else { - daemon_log(LOG_INFO, "ProxySQL crashed. Restarting!\n"); + //daemon_log(LOG_INFO, "ProxySQL crashed. Restarting!\n"); + proxy_error("ProxySQL crashed. Restarting!\n"); return false; } return true; @@ -501,14 +507,16 @@ int main(int argc, const char * argv[]) { if (glovars.proxy_restart_on_error) { gotofork: if (laststart) { - daemon_log(LOG_INFO, "Angel process is waiting %d seconds before starting a new ProxySQL process\n", glovars.proxy_restart_delay); + //daemon_log(LOG_INFO, "Angel process is waiting %d seconds before starting a new ProxySQL process\n", glovars.proxy_restart_delay); + proxy_info("Angel process is waiting %d seconds before starting a new ProxySQL process\n", glovars.proxy_restart_delay); sleep(glovars.proxy_restart_delay); } laststart=time(NULL); pid = fork(); if (pid < 0) { - daemon_log(LOG_INFO, "[FATAL]: Error in fork()\n"); - exit(EXIT_FAILURE); + //daemon_log(LOG_INFO, "[FATAL]: Error in fork()\n"); + proxy_error("[FATAL]: Error in fork()\n"); + exit(EXIT_FAILURE); } if (pid) { @@ -553,7 +561,8 @@ __shutdown: } finish: - daemon_log(LOG_INFO, "Exiting..."); + //daemon_log(LOG_INFO, "Exiting..."); + proxy_info("Exiting..."); daemon_retval_send(255); daemon_signal_done(); daemon_pid_file_remove();