49ba5b9081440aaf210605cf61c748aff9a6ddc7
braney
  Fri Nov 6 14:47:15 2015 -0800
a very basic instrumentation of UDC  (no redmine)

diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c
index b238216..83fc9b0 100644
--- src/hg/hgTracks/hgTracks.c
+++ src/hg/hgTracks/hgTracks.c
@@ -5919,30 +5919,38 @@
 #endif
 
 getDbAndGenome(cart, &database, &organism, oldVars);
 
 protDbName = hPdbFromGdb(database);
 debugTmp = cartUsualString(cart, "hgDebug", "off");
 if(sameString(debugTmp, "on"))
     hgDebug = TRUE;
 else
     hgDebug = FALSE;
 
 int timeout = cartUsualInt(cart, "udcTimeout", 300);
 if (udcCacheTimeout() < timeout)
     udcSetCacheTimeout(timeout);
 
+// tell UDC where to put its statistics file
+char *udcLogFile;
+if ((udcLogFile =  cfgOption("udcLog")) != NULL)
+    {
+    FILE *fp = mustOpen(udcLogFile, "a");
+    udcSetLog(fp);
+    }
+
 initTl();
 
 char *configPageCall = cartCgiUsualString(cart, "hgTracksConfigPage", "notSet");
 
 /* Do main display. */
 
 if (cartUsualBoolean(cart, "hgt.trackImgOnly", FALSE))
     {
     trackImgOnly = TRUE;
     ideogramToo = cartUsualBoolean(cart, "hgt.ideogramToo", FALSE);
     hideControls = TRUE;
     withNextItemArrows = FALSE;
     withNextExonArrows = FALSE;
     hgFindMatches = NULL;     // XXXX necessary ???
     }