You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by jp...@apache.org on 2013/12/10 20:26:19 UTC

[2/3] git commit: TS-2424: set diags log file for each caller

TS-2424: set diags log file for each caller

Since DiagsConfig.cc is built into a static library, we can't rely
on the preprocessor to determine what the diagnostic log file should
be. Add a filename to the constructor so that each usage uses an
explicit name.


Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/4b94cdfd
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/4b94cdfd
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/4b94cdfd

Branch: refs/heads/master
Commit: 4b94cdfd7942595fc461344f1bae834672e84502
Parents: e510c58
Author: James Peach <jp...@apache.org>
Authored: Tue Dec 10 09:04:18 2013 -0800
Committer: James Peach <jp...@apache.org>
Committed: Tue Dec 10 11:22:15 2013 -0800

----------------------------------------------------------------------
 mgmt/Main.cc                   |  5 +++--
 proxy/Main.cc                  |  5 +++--
 proxy/logging/LogStandalone.cc | 14 ++++++++++++--
 proxy/sac.cc                   |  5 ++++-
 proxy/shared/DiagsConfig.cc    | 20 ++++----------------
 proxy/shared/DiagsConfig.h     | 13 +++++++++----
 6 files changed, 35 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/4b94cdfd/mgmt/Main.cc
----------------------------------------------------------------------
diff --git a/mgmt/Main.cc b/mgmt/Main.cc
index 0219e68..2452f16 100644
--- a/mgmt/Main.cc
+++ b/mgmt/Main.cc
@@ -59,6 +59,7 @@
 #include <grp.h>
 
 #define FD_THROTTLE_HEADROOM (128 + 64) // TODO: consolidate with THROTTLE_FD_HEADROOM
+#define DIAGS_LOG_FILENAME "manager.log"
 
 #if defined(freebsd)
 extern "C" int getpwnam_r(const char *name, struct passwd *result, char *buffer, size_t buflen, struct passwd **resptr);
@@ -520,7 +521,7 @@ main(int argc, char **argv)
 
   // Bootstrap the Diags facility so that we can use it while starting
   //  up the manager
-  diagsConfig = NEW(new DiagsConfig(debug_tags, action_tags, false));
+  diagsConfig = NEW(new DiagsConfig(DIAGS_LOG_FILENAME, debug_tags, action_tags, false));
   diags = diagsConfig->diags;
   diags->prefix_str = "Manager ";
 
@@ -570,7 +571,7 @@ main(int argc, char **argv)
   }
   // INKqa11968: need to set up callbacks and diags data structures
   // using configuration in records.config
-  diagsConfig = NEW(new DiagsConfig(debug_tags, action_tags, true));
+  diagsConfig = NEW(new DiagsConfig(DIAGS_LOG_FILENAME, debug_tags, action_tags, true));
   diags = diagsConfig->diags;
   RecSetDiags(diags);
   diags->prefix_str = "Manager ";

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/4b94cdfd/proxy/Main.cc
----------------------------------------------------------------------
diff --git a/proxy/Main.cc b/proxy/Main.cc
index bc7c2d5..b03465b 100644
--- a/proxy/Main.cc
+++ b/proxy/Main.cc
@@ -112,6 +112,7 @@ extern "C" int plock(int);
 #endif
 
 #define DEFAULT_REMOTE_MANAGEMENT_FLAG    0
+#define DIAGS_LOG_FILENAME                "diags.log"
 
 static const long MAX_LOGIN =  sysconf(_SC_LOGIN_NAME_MAX) <= 0 ? _POSIX_LOGIN_NAME_MAX :  sysconf(_SC_LOGIN_NAME_MAX);
 
@@ -1285,7 +1286,7 @@ main(int /* argc ATS_UNUSED */, char **argv)
   // re-start Diag completely) because at initialize, TM only has 1 thread.
   // In TS, some threads have already created, so if we delete Diag and
   // re-start it again, TS will crash.
-  diagsConfig = NEW(new DiagsConfig(error_tags, action_tags, false));
+  diagsConfig = NEW(new DiagsConfig(DIAGS_LOG_FILENAME, error_tags, action_tags, false));
   diags = diagsConfig->diags;
   diags->prefix_str = "Server ";
   if (is_debug_tag_set("diags"))
@@ -1347,7 +1348,7 @@ main(int /* argc ATS_UNUSED */, char **argv)
     RecDebugOff();
     delete(diagsConfig);
   }
-  diagsConfig = NEW(new DiagsConfig(error_tags, action_tags, true));
+  diagsConfig = NEW(new DiagsConfig(DIAGS_LOG_FILENAME, error_tags, action_tags, true));
   diags = diagsConfig->diags;
   RecSetDiags(diags);
   diags->prefix_str = "Server ";

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/4b94cdfd/proxy/logging/LogStandalone.cc
----------------------------------------------------------------------
diff --git a/proxy/logging/LogStandalone.cc b/proxy/logging/LogStandalone.cc
index 5d79f80..931a254 100644
--- a/proxy/logging/LogStandalone.cc
+++ b/proxy/logging/LogStandalone.cc
@@ -42,6 +42,8 @@
 // Needs LibRecordsConfigInit()
 #include "RecordsConfig.h"
 
+#define LOG_FILENAME_SIZE 255
+
 class HttpBodyFactory;
 
 // globals the rest of the system depends on
@@ -196,11 +198,16 @@ check_lockfile()
 void
 init_log_standalone(const char *pgm_name, bool one_copy)
 {
+  char logfile[LOG_FILENAME_SIZE];
+
   // ensure that only one copy of the sac is running
   //
   if (one_copy) {
     check_lockfile();
   }
+
+  snprintf(logfile, sizeof(logfile), "%s.log", pgm_name);
+
   // set stdin/stdout to be unbuffered
   //
   setbuf(stdin, NULL);
@@ -210,7 +217,7 @@ init_log_standalone(const char *pgm_name, bool one_copy)
 
   init_system();
   initialize_process_manager();
-  diagsConfig = NEW(new DiagsConfig(error_tags, action_tags));
+  diagsConfig = NEW(new DiagsConfig(logfile, error_tags, action_tags));
   diags = diagsConfig->diags;
   diags_init = 1;
 }
@@ -232,11 +239,14 @@ init_log_standalone(const char *pgm_name, bool one_copy)
 void
 init_log_standalone_basic(const char *pgm_name)
 {
+  char logfile[LOG_FILENAME_SIZE];
+
+  snprintf(logfile, sizeof(logfile), "%s.log", pgm_name);
   openlog(pgm_name, LOG_PID | LOG_NDELAY | LOG_NOWAIT, LOG_DAEMON);
 
   init_system();
   const bool use_records = false;
-  diagsConfig = NEW(new DiagsConfig(error_tags, action_tags, use_records));
+  diagsConfig = NEW(new DiagsConfig(logfile, error_tags, action_tags, use_records));
   diags = diagsConfig->diags;
   // set stdin/stdout to be unbuffered
   //

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/4b94cdfd/proxy/sac.cc
----------------------------------------------------------------------
diff --git a/proxy/sac.cc b/proxy/sac.cc
index a9e4a9b..661b3cf 100644
--- a/proxy/sac.cc
+++ b/proxy/sac.cc
@@ -46,6 +46,8 @@
 #include "DiagsConfig.h"
 #include "I_Machine.h"
 
+#define DIAGS_LOG_FILENAME "collector.log"
+
 // sac-specific command-line flags
 //
 static int version_flag = 0;
@@ -90,8 +92,9 @@ main(int /* argc ATS_UNUSED */, char *argv[])
     _exit(0);
   }
 
-  diagsConfig = NEW(new DiagsConfig(error_tags, action_tags, false));
+  diagsConfig = NEW(new DiagsConfig(DIAGS_LOG_FILENAME, error_tags, action_tags, false));
   diags = diagsConfig->diags;
+  diags->prefix_str = "Collector ";
 
   // initialize this application for standalone logging operation
   //

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/4b94cdfd/proxy/shared/DiagsConfig.cc
----------------------------------------------------------------------
diff --git a/proxy/shared/DiagsConfig.cc b/proxy/shared/DiagsConfig.cc
index 3cb6a3d..6576ff9 100644
--- a/proxy/shared/DiagsConfig.cc
+++ b/proxy/shared/DiagsConfig.cc
@@ -24,18 +24,6 @@
 #include "libts.h"
 #include "I_Layout.h"
 #include "DiagsConfig.h"
-#ifdef LOCAL_MANAGER
-
-#include "mgmt/Main.h"
-#define DIAGS_LOG_FILE "manager.log"
-
-#else
-#include "proxy/Main.h"
-#include "ProxyConfig.h"
-#define DIAGS_LOG_FILE "diags.log"
-
-#endif
-
 #include "P_RecCore.h"
 
 
@@ -285,7 +273,7 @@ DiagsConfig::RegisterDiagConfig()
 }
 
 
-DiagsConfig::DiagsConfig(char *bdt, char *bat, bool use_records)
+DiagsConfig::DiagsConfig(const char * filename, const char * tags, const char * actions, bool use_records)
 {
   char diags_logpath[PATH_NAME_MAX + 1];
   xptr<char> logpath;
@@ -301,7 +289,7 @@ DiagsConfig::DiagsConfig(char *bdt, char *bat, bool use_records)
   ////////////////////////////////////////////////////////////////////
 
   if (!use_records) {
-    diags = NEW(new Diags(bdt, bat, NULL));
+    diags = NEW(new Diags(tags, actions, NULL));
     config_diags_norecords();
     return;
   }
@@ -317,7 +305,7 @@ DiagsConfig::DiagsConfig(char *bdt, char *bat, bool use_records)
     _exit(1);
   }
 
-  ink_filepath_make(diags_logpath, sizeof(diags_logpath), logpath, DIAGS_LOG_FILE);
+  ink_filepath_make(diags_logpath, sizeof(diags_logpath), logpath, filename);
 
   // open write append
   // diags_log_fp = fopen(diags_logpath,"w");
@@ -331,7 +319,7 @@ DiagsConfig::DiagsConfig(char *bdt, char *bat, bool use_records)
     }
   }
 
-  diags = NEW(new Diags(bdt, bat, diags_log_fp));
+  diags = NEW(new Diags(tags, actions, diags_log_fp));
   if (diags_log_fp == NULL) {
 
     diags->print(NULL, DTA(DL_Warning),

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/4b94cdfd/proxy/shared/DiagsConfig.h
----------------------------------------------------------------------
diff --git a/proxy/shared/DiagsConfig.h b/proxy/shared/DiagsConfig.h
index b5a69b9..730d134 100644
--- a/proxy/shared/DiagsConfig.h
+++ b/proxy/shared/DiagsConfig.h
@@ -27,17 +27,22 @@
 
 struct DiagsConfig
 {
-  bool callbacks_established;
-  FILE *diags_log_fp;
-  Diags *diags;
 
   void reconfigure_diags();
   void config_diags_norecords();
   void parse_output_string(char *s, DiagsModeOutput * o);
   void RegisterDiagConfig();
   void register_diags_callbacks();
-    DiagsConfig(char *bdt, char *bat, bool use_records = true);
+
+  DiagsConfig(const char * filename, const char * tags, const char * actions, bool use_records = true);
    ~DiagsConfig();
+
+private:
+  bool callbacks_established;
+  FILE *diags_log_fp;
+
+public:
+  Diags *diags;
 };