Explorar o código

HPCC-9437 Add option for high resolution timing in log files

Change the meaning of the milli and micro logging options (no currently being
used by any client) so that the milli/microseconds are reported as a fraction
of the seconds in the time field (much easier to read).

Undo an unintentional change to the way that fields are selected in the Roxie
logs - it was supposed to (and used to) use a shorter set of fields when
logging to stdout, but during a precious refactoring was changed so that if
you log to stdout, the fields used for the logfile are restricted.

Add ability to configure logging format globally in environment.conf

Windows does not support the sub-second timings.

Signed-off-by: Richard Chapman <rchapman@hpccsystems.com>
Richard Chapman %!s(int64=12) %!d(string=hai) anos
pai
achega
68a5eb0087

+ 0 - 1
ecl/agentexec/agentexec.cpp

@@ -71,7 +71,6 @@ void CEclAgentExecutionServer::start(StringBuffer & codeDir)
         //Build logfile from component properties settings
         Owned<IComponentLogFileCreator> lf = createComponentLogFileCreator(properties, "eclagent");
         lf->setCreateAliasFile(false);
-        lf->setMsgFields(MSGFIELD_timeDate | MSGFIELD_msgID | MSGFIELD_process | MSGFIELD_thread | MSGFIELD_code);
         lf->beginLogging();
         PROGLOG("Logging to %s",lf->queryLogFileSpec());
     }

+ 0 - 1
ecl/eclagent/eclagent.cpp

@@ -3053,7 +3053,6 @@ extern int HTHOR_API eclagent_main(int argc, const char *argv[], StringBuffer *
     if (!standAloneExe)
     {
         Owned<IComponentLogFileCreator> lf = createComponentLogFileCreator(agentTopology, "eclagent");
-        lf->setMsgFields(MSGFIELD_timeDate | MSGFIELD_msgID | MSGFIELD_process | MSGFIELD_thread | MSGFIELD_code);
         lf->setCreateAliasFile(false);
         logMsgHandler = lf->beginLogging();
         PROGLOG("Logging to %s", lf->queryLogFileSpec());

+ 2 - 0
initfiles/etc/DIR_NAME/environment.conf.in

@@ -6,6 +6,8 @@ path=${INSTALL_DIR}
 classpath=${INSTALL_DIR}/classes
 runtime=${RUNTIME_PATH}
 lock=${LOCK_PATH}
+# Supported logging fields: AUD,CLS,DET,MID,TIM,DAT,PID,TID,NOD,JOB,USE,SES,COD,MLT,MCT,NNT,COM,QUO,PFX,ALL,STD
+logfields=TIM+DAT+MLT+MID+PID+TID+COD+QUO+PFX
 pid=${PID_PATH}
 log=${LOG_PATH}
 user=${RUNTIME_USER}

+ 4 - 4
roxie/ccd/ccdmain.cpp

@@ -561,13 +561,13 @@ int STARTQUERY_API start_query(int argc, const char *argv[])
             getConfigurationDirectory(directoryTree,"query","roxie", roxieName, queryDirectory);
 
         //Logging stuff
+        if (globals->getPropBool("--stdlog", traceLevel != 0) || topology->getPropBool("@forceStdLog", false))
+            queryStderrLogMsgHandler()->setMessageFields(MSGFIELD_time | MSGFIELD_milliTime | MSGFIELD_thread | MSGFIELD_prefix);
+        else
+            removeLog();
         if (globals->hasProp("--logfile"))
         {
             Owned<IComponentLogFileCreator> lf = createComponentLogFileCreator(topology, "roxie");
-            if (globals->getPropBool("--stdlog", traceLevel != 0) || topology->getPropBool("@forceStdLog", false))
-                lf->setMsgFields(MSGFIELD_time | MSGFIELD_thread | MSGFIELD_prefix);
-            else
-                removeLog();
             lf->setMaxDetail(TopDetail);
             lf->beginLogging();
             logDirectory.set(lf->queryLogDir());

+ 81 - 80
system/jlib/jlog.cpp

@@ -17,6 +17,8 @@
 
 
 #include "platform.h"
+#include "build-config.h"
+
 #include <algorithm>
 #include "stdio.h"
 #include "jlog.hpp"
@@ -25,6 +27,7 @@
 #include "jarray.hpp"
 #include "jsocket.hpp"
 #include "jmisc.hpp"
+#include "jprop.hpp"
 
 #define MSGCOMP_NUMBER 1000
 #define FILE_LOG_ENABLES_QUEUEUING
@@ -50,26 +53,34 @@ static FILE *getNullHandle()
 LogMsgSysInfo::LogMsgSysInfo(LogMsgId _id, unsigned port, LogMsgSessionId session)
 {
     id = _id;
+#ifdef _WIN32
+    // Hack for the fact that Windows doesn't handle gettimeofday
+    // Subsecond timing granularities in log files will not be available
     time(&timeStarted);
+#else
+    gettimeofday(&timeStarted, NULL);
+#endif
     processID = GetCurrentProcessId();
     threadID = threadLogID();
     sessionID = session;
     node.setLocalHost(port);
-#ifdef JLOG_PROVIDES_CLOCK
-    nanoTime = cycle_to_nanosec(get_cycles_now()) % CLOCK_LOOP_NANOSECONDS;
-#endif
 }
 
 void LogMsgSysInfo::serialize(MemoryBuffer & out) const
 {
-    out.append(id).append((unsigned)timeStarted).append(processID).append(threadID).append(sessionID); node.serialize(out);
+    out.append(id).append((unsigned) queryTime()).append(processID).append(threadID).append(sessionID); node.serialize(out);
 }
 
 void LogMsgSysInfo::deserialize(MemoryBuffer & in)
 {
     unsigned t;
     in.read(id).read(t).read(processID).read(threadID).read(sessionID); node.deserialize(in);
+#ifdef _WIN32
     timeStarted = t;
+#else
+    timeStarted.tv_sec = t;
+    timeStarted.tv_usec = 0;  // For back-compatibility reasons, the subsecond timings are not serialized
+#endif
 }
 
 // LogMsg
@@ -96,7 +107,15 @@ StringBuffer & LogMsg::toStringPlain(StringBuffer & out, unsigned fields) const
             strftime(timeString, 12, "%Y-%m-%d ", &timeStruct);
             out.append(timeString);
         }
-        if(fields & MSGFIELD_time)
+        if(fields & MSGFIELD_microTime)
+        {
+            out.appendf("%02d:%02d:%02d.%06d ", timeStruct.tm_hour, timeStruct.tm_min, timeStruct.tm_sec, sysInfo.queryUSecs());
+        }
+        else if(fields & MSGFIELD_milliTime)
+        {
+            out.appendf("%02d:%02d:%02d.%03d ", timeStruct.tm_hour, timeStruct.tm_min, timeStruct.tm_sec, sysInfo.queryUSecs()/1000);
+        }
+        else if(fields & MSGFIELD_time)
         {
             strftime(timeString, 12, "%H:%M:%S ", &timeStruct);
             out.append(timeString);
@@ -117,14 +136,6 @@ StringBuffer & LogMsg::toStringPlain(StringBuffer & out, unsigned fields) const
         sysInfo.queryNode()->getUrlStr(out);
         out.append(" ");
     }
-#ifdef JLOG_PROVIDES_CLOCK
-    if(fields & MSGFIELD_nanoTime)
-        out.appendf("%"I64F"dns ", sysInfo.queryClock());
-    else if(fields & MSGFIELD_microTime)
-        out.appendf("%"I64F"dus ", sysInfo.queryClock()/1000);
-    else if(fields & MSGFIELD_milliTime)
-        out.appendf("%"I64F"dms  ", sysInfo.queryClock()/1000000);
-#endif
     if(fields & MSGFIELD_job)
         if(jobInfo.queryJobID() == UnknownJob)
             out.append("job=unknown ");
@@ -176,7 +187,15 @@ StringBuffer & LogMsg::toStringXML(StringBuffer & out, unsigned fields) const
             strftime(timeString, 20, "date=\"%Y-%m-%d\" ", &timeStruct);
             out.append(timeString);
         }
-        if(fields & MSGFIELD_time)
+        if(fields & MSGFIELD_microTime)
+        {
+            out.appendf("time=\"%02d:%02d:%02d.%06d\" ", timeStruct.tm_hour, timeStruct.tm_min, timeStruct.tm_sec, sysInfo.queryUSecs());
+        }
+        else if(fields & MSGFIELD_milliTime)
+        {
+            out.appendf("time=\"%02d:%02d:%02d.%03d\" ", timeStruct.tm_hour, timeStruct.tm_min, timeStruct.tm_sec, sysInfo.queryUSecs()/1000);
+        }
+        else if(fields & MSGFIELD_time)
         {
             strftime(timeString, 20, "time=\"%H:%M:%S\" ", &timeStruct);
             out.append(timeString);
@@ -197,14 +216,6 @@ StringBuffer & LogMsg::toStringXML(StringBuffer & out, unsigned fields) const
         sysInfo.queryNode()->getUrlStr(out);
         out.append("\" ");
     }
-#ifdef JLOG_PROVIDES_CLOCK
-    if(fields & MSGFIELD_nanoTime)
-        out.append("Clock=\"").append(sysInfo.queryClock()).append("ns\" ");
-    else if(fields & MSGFIELD_microTime)
-        out.append("Clock=\"").append(sysInfo.queryClock()/1000).append("us\" ");
-    else if(fields & MSGFIELD_milliTime)
-        out.append("Clock=\"").append(sysInfo.queryClock()/1000000).append("ms\" ");
-#endif
 #ifdef LOG_MSG_NEWLINE
     if(fields & MSGFIELD_allSysInfo) out.append("\n     ");
 #endif
@@ -250,7 +261,15 @@ StringBuffer & LogMsg::toStringTable(StringBuffer & out, unsigned fields) const
             strftime(timeString, 12, "%Y-%m-%d ", &timeStruct);
             out.append(timeString);
         }
-        if(fields & MSGFIELD_time)
+        if(fields & MSGFIELD_microTime)
+        {
+            out.appendf("%02d:%02d:%02d.%06d ", timeStruct.tm_hour, timeStruct.tm_min, timeStruct.tm_sec, sysInfo.queryUSecs());
+        }
+        else if(fields & MSGFIELD_milliTime)
+        {
+            out.appendf("%02d:%02d:%02d.%03d ", timeStruct.tm_hour, timeStruct.tm_min, timeStruct.tm_sec, sysInfo.queryUSecs()/1000);
+        }
+        else if(fields & MSGFIELD_time)
         {
             strftime(timeString, 12, "%H:%M:%S ", &timeStruct);
             out.append(timeString);
@@ -271,14 +290,6 @@ StringBuffer & LogMsg::toStringTable(StringBuffer & out, unsigned fields) const
         sysInfo.queryNode()->getUrlStr(out);
         out.appendN(20 + len - out.length(), ' ');
     }
-#ifdef JLOG_PROVIDES_CLOCK
-    if(fields & MSGFIELD_nanoTime)
-        out.appendf("%13"I64F"d ", sysInfo.queryClock());
-    else if(fields & MSGFIELD_microTime)
-        out.appendf("%10"I64F"d ", sysInfo.queryClock()/1000);
-    else if(fields & MSGFIELD_milliTime)
-        out.appendf("%7"I64F"d  ", sysInfo.queryClock()/1000000);
-#endif
     if(fields & MSGFIELD_job)
         if(jobInfo.queryJobID() == UnknownJob)
             out.append("unknown ");
@@ -317,7 +328,7 @@ StringBuffer & LogMsg::toStringTableHead(StringBuffer & out, unsigned fields)
         out.append("   MsgID ");
     if(fields & MSGFIELD_date)
         out.append("      Date ");
-    if(fields & MSGFIELD_time)
+    if(fields & (MSGFIELD_microTime | MSGFIELD_milliTime | MSGFIELD_time))
         out.append("    Time ");
     if(fields & MSGFIELD_process)
         out.append("  PID ");
@@ -327,14 +338,6 @@ StringBuffer & LogMsg::toStringTableHead(StringBuffer & out, unsigned fields)
         out.append("      SessionID      ");
     if(fields & MSGFIELD_node)
         out.append("               Node ");
-#ifdef JLOG_PROVIDES_CLOCK
-    if(fields & MSGFIELD_nanoTime)
-        out.append("     Clock/ns ");
-    else if(fields & MSGFIELD_microTime)
-        out.append("  Clock/us ");
-    else if(fields & MSGFIELD_milliTime)
-        out.append("Clock/ms ");
-#endif
     if(fields & MSGFIELD_job)
         out.append("  JobID ");
     if(fields & MSGFIELD_user)
@@ -366,7 +369,15 @@ void LogMsg::fprintPlain(FILE * handle, unsigned fields) const
             strftime(timeString, 12, "%Y-%m-%d ", &timeStruct);
             fputs(timeString, handle);
         }
-        if(fields & MSGFIELD_time)
+        if(fields & MSGFIELD_microTime)
+        {
+            fprintf(handle, "%02d:%02d:%02d.%06d ", timeStruct.tm_hour, timeStruct.tm_min, timeStruct.tm_sec, sysInfo.queryUSecs());
+        }
+        else if(fields & MSGFIELD_milliTime)
+        {
+            fprintf(handle, "%02d:%02d:%02d.%03d ", timeStruct.tm_hour, timeStruct.tm_min, timeStruct.tm_sec, sysInfo.queryUSecs()/1000);
+        }
+        else if(fields & MSGFIELD_time)
         {
             strftime(timeString, 12, "%H:%M:%S ", &timeStruct);
             fputs(timeString, handle);
@@ -387,14 +398,6 @@ void LogMsg::fprintPlain(FILE * handle, unsigned fields) const
         sysInfo.queryNode()->getUrlStr(buff);
         fprintf(handle, "%s ", buff.str());
     }
-#ifdef JLOG_PROVIDES_CLOCK
-    if(fields & MSGFIELD_nanoTime)
-        fprintf(handle, "%"I64F"dns ", sysInfo.queryClock());
-    else if(fields & MSGFIELD_microTime)
-        fprintf(handle, "%"I64F"dus ", sysInfo.queryClock()/1000);
-    else if(fields & MSGFIELD_milliTime)
-        fprintf(handle, "%"I64F"dms ", sysInfo.queryClock()/1000000);
-#endif
     if(fields & MSGFIELD_job)
         if(jobInfo.queryJobID() == UnknownJob)
             fprintf(handle, "job=unknown ");
@@ -441,7 +444,15 @@ void LogMsg::fprintXML(FILE * handle, unsigned fields) const
             strftime(timeString, 20, "date=\"%Y-%m-%d\" ", &timeStruct);
             fputs(timeString, handle);
         }
-        if(fields & MSGFIELD_time)
+        if(fields & MSGFIELD_microTime)
+        {
+            fprintf(handle, "time=\"%02d:%02d:%02d.%06d\" ", timeStruct.tm_hour, timeStruct.tm_min, timeStruct.tm_sec, sysInfo.queryUSecs());
+        }
+        else if(fields & MSGFIELD_milliTime)
+        {
+            fprintf(handle, "time=\"%02d:%02d:%02d.%03d\" ", timeStruct.tm_hour, timeStruct.tm_min, timeStruct.tm_sec, sysInfo.queryUSecs()/1000);
+        }
+        else if(fields & MSGFIELD_time)
         {
             strftime(timeString, 20, "time=\"%H:%M:%S\" ", &timeStruct);
             fputs(timeString, handle);
@@ -462,14 +473,6 @@ void LogMsg::fprintXML(FILE * handle, unsigned fields) const
         sysInfo.queryNode()->getUrlStr(buff);
         fprintf(handle, "Node=\"%s\" ", buff.str());
     }
-#ifdef JLOG_PROVIDES_CLOCK
-    if(fields & MSGFIELD_nanoTime)
-        fprintf(handle, "Clock=\"%"I64F"d ns\" ", sysInfo.queryClock());
-    else if(fields & MSGFIELD_nanoTime)
-        fprintf(handle, "Clock=\"%"I64F"d us\" ", sysInfo.queryClock()/1000);
-    else if(fields & MSGFIELD_nanoTime)
-        fprintf(handle, "Clock=\"%"I64F"d ms\" ", sysInfo.queryClock()/1000000);
-#endif
 #ifdef LOG_MSG_NEWLINE
     if(fields & MSGFIELD_allSysInfo) fprintf(handle, "\n     ");
 #endif
@@ -514,7 +517,15 @@ void LogMsg::fprintTable(FILE * handle, unsigned fields) const
             strftime(timeString, 12, "%Y-%m-%d ", &timeStruct);
             fputs(timeString, handle);
         }
-        if(fields & MSGFIELD_time)
+        if(fields & MSGFIELD_microTime)
+        {
+            fprintf(handle, "%02d:%02d:%02d.%06d ", timeStruct.tm_hour, timeStruct.tm_min, timeStruct.tm_sec, sysInfo.queryUSecs());
+        }
+        else if(fields & MSGFIELD_milliTime)
+        {
+            fprintf(handle, "%02d:%02d:%02d.%03d ", timeStruct.tm_hour, timeStruct.tm_min, timeStruct.tm_sec, sysInfo.queryUSecs()/1000);
+        }
+        else if(fields & MSGFIELD_time)
         {
             strftime(timeString, 12, "%H:%M:%S ", &timeStruct);
             fputs(timeString, handle);
@@ -536,14 +547,6 @@ void LogMsg::fprintTable(FILE * handle, unsigned fields) const
         sysInfo.queryNode()->getUrlStr(buff);
         fprintf(handle, "%s%s", buff.str(), (buff.length()<=20) ? twenty_spaces+buff.length() : "");
     }
-#ifdef JLOG_PROVIDES_CLOCK
-    if(fields & MSGFIELD_nanoTime)
-        fprintf(handle, "%13"I64F"d ", sysInfo.queryClock());
-    else if(fields & MSGFIELD_microTime)
-        fprintf(handle, "%10"I64F"d ", sysInfo.queryClock()/1000);
-    else if(fields & MSGFIELD_milliTime)
-        fprintf(handle, "%7"I64F"d  ", sysInfo.queryClock()/1000000);
-#endif
     if(fields & MSGFIELD_job)
         if(jobInfo.queryJobID() == UnknownJob)
             fprintf(handle, "unknown ");
@@ -586,14 +589,6 @@ void LogMsg::fprintTableHead(FILE * handle, unsigned fields)
         fprintf(handle, "      SessionID      ");
     if(fields & MSGFIELD_node)
         fprintf(handle, "               Node ");
-#ifdef JLOG_PROVIDES_CLOCK
-    if(fields & MSGFIELD_nanoTime)
-        fprintf(handle, "     Clock/ns ");
-    else if(fields & MSGFIELD_microTime)
-        fprintf(handle, "  Clock/us ");
-    else if(fields & MSGFIELD_milliTime)
-        fprintf(handle, "Clock/ms ");
-#endif
     if(fields & MSGFIELD_job)
         fprintf(handle, "  JobID ");
     if(fields & MSGFIELD_user)
@@ -1001,14 +996,14 @@ void RollingFileLogMsgHandler::doRollover(bool daily, const char *forceName) con
 BinLogMsgHandler::BinLogMsgHandler(const char * _filename, bool _append) : filename(_filename), append(_append)
 {
     file.setown(createIFile(filename.get()));
-    if(!file) assertex(!"BinLogMsgHandler::BinLogMsgHanlder : Could not create IFile");
+    if(!file) assertex(!"BinLogMsgHandler::BinLogMsgHandler : Could not create IFile");
     if(append)
         fio.setown(file->open(IFOwrite));
     else
         fio.setown(file->open(IFOcreate));
-    if(!fio) assertex(!"BinLogMsgHandler::BinLogMsgHanlder : Could not create IFileIO");
+    if(!fio) assertex(!"BinLogMsgHandler::BinLogMsgHandler : Could not create IFileIO");
     fstr.setown(createIOStream(fio));
-    if(!fstr) assertex(!"BinLogMsgHandler::BinLogMsgHanlder : Could not create IFileIOStream");
+    if(!fstr) assertex(!"BinLogMsgHandler::BinLogMsgHandler : Could not create IFileIOStream");
     if(append)
         fstr->seek(0, IFSend);
 }
@@ -2634,7 +2629,13 @@ private:
         rolling = true;
         append = true;
         flushes = true;
-        msgFields = MSGFIELD_STANDARD;
+        Owned<IProperties> conf = createProperties(CONFIG_DIR PATHSEPSTR "environment.conf", true);
+        StringBuffer logFields;
+        conf->getProp("logfields", logFields);
+        if (logFields.length())
+            msgFields = LogMsgFieldsFromAbbrevs(logFields);
+        else
+            msgFields = MSGFIELD_STANDARD;
         msgAudiences = MSGAUD_all;
         msgClasses = MSGCLS_all;
         maxDetail = DefaultDetail;
@@ -2765,4 +2766,4 @@ IComponentLogFileCreator * createComponentLogFileCreator(const char *_logDir, co
 IComponentLogFileCreator * createComponentLogFileCreator(const char *_component)
 {
     return new CComponentLogFileCreator(_component);
-}
+}

+ 19 - 11
system/jlib/jlog.hpp

@@ -20,8 +20,6 @@
 #ifndef JLOG_HPP
 #define JLOG_HPP
 
-// Control whether a clock is provided
-#define JLOG_PROVIDES_CLOCK
 // Control whether XML reports have newlines between category/system/job/text sections
 #ifdef _DEBUG
 #define LOG_MSG_NEWLINE
@@ -206,7 +204,7 @@ typedef enum
     MSGFIELD_code        = 0x001000,
     MSGFIELD_milliTime   = 0x002000,
     MSGFIELD_microTime   = 0x004000,
-    MSGFIELD_nanoTime    = 0x008000,
+    MSGFIELD_nanoTime    = 0x008000,  // Not supported
     MSGFIELD_component   = 0x010000,
     MSGFIELD_quote       = 0x020000,
     MSGFIELD_prefix      = 0x040000,
@@ -214,7 +212,11 @@ typedef enum
     MSGFIELD_all         = 0xFFFFFF
 } LogMsgField;
 
+#ifdef _WIN32
 #define MSGFIELD_STANDARD LogMsgField(MSGFIELD_timeDate | MSGFIELD_msgID | MSGFIELD_process | MSGFIELD_thread | MSGFIELD_code | MSGFIELD_quote | MSGFIELD_prefix)
+#else
+#define MSGFIELD_STANDARD LogMsgField(MSGFIELD_timeDate | MSGFIELD_milliTime | MSGFIELD_msgID | MSGFIELD_process | MSGFIELD_thread | MSGFIELD_code | MSGFIELD_quote | MSGFIELD_prefix)
+#endif
 
 inline const char * LogMsgFieldToString(LogMsgField field)
 {
@@ -299,6 +301,8 @@ inline unsigned LogMsgFieldFromAbbrev(char const * abbrev)
         return MSGFIELD_component;
     if(strnicmp(abbrev, "QUO", 3)==0)
         return MSGFIELD_quote;
+    if(strnicmp(abbrev, "PFX", 3)==0)
+        return MSGFIELD_prefix;
     if(strnicmp(abbrev, "ALL", 3)==0)
         return MSGFIELD_all;
     if(strnicmp(abbrev, "STD", 3)==0)
@@ -379,26 +383,30 @@ class jlib_decl LogMsgSysInfo
 public:
     LogMsgSysInfo(LogMsgId _id = (LogMsgId)-1, unsigned port = 0, LogMsgSessionId session = UnknownSession);
     inline LogMsgId           queryMsgID() const { return id; }
+#ifdef _WIN32
     inline time_t             queryTime() const { return timeStarted; }
+    inline unsigned           queryUSecs() const { return 0; }
+#else
+    inline time_t             queryTime() const { return timeStarted.tv_sec; }
+    inline unsigned           queryUSecs() const { return timeStarted.tv_usec; }
+#endif
     inline unsigned           queryProcessID() const { return processID; }
     inline unsigned           queryThreadID() const { return threadID; }
     inline LogMsgSessionId    querySessionID() const { return sessionID; }
     inline const SocketEndpoint * queryNode() const { return &node; }
-#ifdef JLOG_PROVIDES_CLOCK
-    inline __int64            queryClock() const { return nanoTime; }
-#endif
     void                      serialize(MemoryBuffer & out) const;
     void                      deserialize(MemoryBuffer & in);
 private:
     LogMsgId                  id;
-    time_t                    timeStarted;
+#ifdef _WIN32
+    time_t                     timeStarted;
+#else
+    struct timeval            timeStarted;
+#endif
     unsigned                  processID;
     unsigned                  threadID;
     LogMsgSessionId           sessionID;
-    SocketEndpoint              node;
-#ifdef JLOG_PROVIDES_CLOCK
-    __int64                   nanoTime;
-#endif
+    SocketEndpoint            node;
 };
 
 // Info about job generating log message, provided by user (this info is dynamic, determined at run-time)

+ 0 - 1
thorlcr/master/thmastermain.cpp

@@ -500,7 +500,6 @@ int main( int argc, char *argv[]  )
             Owned<IComponentLogFileCreator> lf = createComponentLogFileCreator(globals, "thor");
             lf->setName("thormaster");//override default filename
             lf->setCreateAliasFile(false);
-            lf->setMsgFields(MSGFIELD_timeDate | MSGFIELD_msgID | MSGFIELD_process | MSGFIELD_thread | MSGFIELD_code);
             logHandler = lf->beginLogging();
             createUNCFilename(lf->queryLogFileSpec(), logUrl, false);
         }

+ 0 - 1
thorlcr/slave/thslavemain.cpp

@@ -223,7 +223,6 @@ void startSlaveLog()
     lf->setPostfix(slaveNumStr.append(mySlaveNum).str());
     lf->setCreateAliasFile(false);
     lf->setName(fileName.str());//override default filename
-    lf->setMsgFields(MSGFIELD_timeDate | MSGFIELD_msgID | MSGFIELD_process | MSGFIELD_thread | MSGFIELD_code);
     lf->beginLogging();
 
     StringBuffer url;