Browse Source

Added option to disable log timestamps.

Lasse Öörni 13 years ago
parent
commit
6dac86e2e7
4 changed files with 25 additions and 6 deletions
  1. 1 0
      Docs/ScriptAPI.dox
  2. 3 1
      Engine/Engine/IOAPI.cpp
  3. 15 5
      Engine/IO/Log.cpp
  4. 6 0
      Engine/IO/Log.h

+ 1 - 0
Docs/ScriptAPI.dox

@@ -775,6 +775,7 @@ Properties:<br>
 - ShortStringHash type (readonly)
 - ShortStringHash type (readonly)
 - String typeName (readonly)
 - String typeName (readonly)
 - int level
 - int level
+- bool timeStamp
 - String lastMessage (readonly)
 - String lastMessage (readonly)
 
 
 
 

+ 3 - 1
Engine/Engine/IOAPI.cpp

@@ -106,8 +106,10 @@ static void RegisterLog(asIScriptEngine* engine)
     engine->RegisterObjectMethod("Log", "void Info(const String&in)", asFUNCTION(LogInfo), asCALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod("Log", "void Info(const String&in)", asFUNCTION(LogInfo), asCALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod("Log", "void Warning(const String&in)", asFUNCTION(LogWarning), asCALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod("Log", "void Warning(const String&in)", asFUNCTION(LogWarning), asCALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod("Log", "void Error(const String&in)", asFUNCTION(LogError), asCALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod("Log", "void Error(const String&in)", asFUNCTION(LogError), asCALL_CDECL_OBJLAST);
-    engine->RegisterObjectMethod("Log", "int get_level() const", asMETHOD(Log, GetLevel), asCALL_THISCALL);
     engine->RegisterObjectMethod("Log", "void set_level(int)", asMETHOD(Log, SetLevel), asCALL_THISCALL);
     engine->RegisterObjectMethod("Log", "void set_level(int)", asMETHOD(Log, SetLevel), asCALL_THISCALL);
+    engine->RegisterObjectMethod("Log", "int get_level() const", asMETHOD(Log, GetLevel), asCALL_THISCALL);
+    engine->RegisterObjectMethod("Log", "void set_timeStamp(bool)", asMETHOD(Log, SetTimeStamp), asCALL_THISCALL);
+    engine->RegisterObjectMethod("Log", "bool get_timeStamp() const", asMETHOD(Log, GetTimeStamp), asCALL_THISCALL);
     engine->RegisterObjectMethod("Log", "const String& get_lastMessage()", asMETHOD(Log, GetLastMessage), asCALL_THISCALL);
     engine->RegisterObjectMethod("Log", "const String& get_lastMessage()", asMETHOD(Log, GetLastMessage), asCALL_THISCALL);
     engine->RegisterGlobalFunction("Log@+ get_log()", asFUNCTION(GetLog), asCALL_CDECL);
     engine->RegisterGlobalFunction("Log@+ get_log()", asFUNCTION(GetLog), asCALL_CDECL);
     
     

+ 15 - 5
Engine/IO/Log.cpp

@@ -57,6 +57,7 @@ Log::Log(Context* context) :
     #else
     #else
     level_(LOG_INFO),
     level_(LOG_INFO),
     #endif
     #endif
+    timeStamp_(true),
     inWrite_(false)
     inWrite_(false)
 {
 {
 }
 }
@@ -94,12 +95,16 @@ void Log::Write(int level, const String& message)
     
     
     inWrite_ = true;
     inWrite_ = true;
     lastMessage_ = message;
     lastMessage_ = message;
+    String formattedMessage = levelPrefixes[level] + ": " + message;
     
     
-    time_t sysTime;
-    time(&sysTime);
-    const char* dateTime = ctime(&sysTime);
-    String dateTimeString = String(dateTime).Replaced("\n", "");
-    String formattedMessage = "[" + dateTimeString + "] " + levelPrefixes[level] + ": " + message;
+    if (timeStamp_)
+    {
+        time_t sysTime;
+        time(&sysTime);
+        const char* dateTime = ctime(&sysTime);
+        String dateTimeString = String(dateTime).Replaced("\n", "");
+        formattedMessage = "[" + dateTimeString + "] " + formattedMessage;
+    }
     
     
     #if defined(ANDROID)
     #if defined(ANDROID)
     int androidLevel = ANDROID_LOG_DEBUG + level;
     int androidLevel = ANDROID_LOG_DEBUG + level;
@@ -159,6 +164,11 @@ void Log::SetLevel(int level)
     level_ = level;
     level_ = level;
 }
 }
 
 
+void Log::SetTimeStamp(bool enable)
+{
+    timeStamp_ = enable;
+}
+
 void WriteToLog(Context* context, int level, const String& message)
 void WriteToLog(Context* context, int level, const String& message)
 {
 {
     Log* log = context->GetSubsystem<Log>();
     Log* log = context->GetSubsystem<Log>();

+ 6 - 0
Engine/IO/Log.h

@@ -57,9 +57,13 @@ public:
     void WriteRaw(const String& message);
     void WriteRaw(const String& message);
     /// Set logging level.
     /// Set logging level.
     void SetLevel(int level);
     void SetLevel(int level);
+    /// Set whether to timestamp log messages.
+    void SetTimeStamp(bool enable);
     
     
     /// Return logging level.
     /// Return logging level.
     int GetLevel() const { return level_; }
     int GetLevel() const { return level_; }
+    /// Return whether log messages are timestamped.
+    bool GetTimeStamp() const { return timeStamp_; }
     /// Return last log message.
     /// Return last log message.
     const String& GetLastMessage() const { return lastMessage_; }
     const String& GetLastMessage() const { return lastMessage_; }
     
     
@@ -70,6 +74,8 @@ private:
     String lastMessage_;
     String lastMessage_;
     /// Logging level.
     /// Logging level.
     int level_;
     int level_;
+    /// Timestamp log messages flag.
+    bool timeStamp_;
     /// In write flag to prevent recursion.
     /// In write flag to prevent recursion.
     bool inWrite_;
     bool inWrite_;
 };
 };