import Common.LongFilePathOs as os, sys, logging\r
import traceback\r
from .BuildToolError import *\r
+import logging.handlers\r
\r
## Log level constants\r
DEBUG_0 = 1\r
quiet = _ErrorLogger.error\r
\r
## Initialize log system\r
-def Initialize():\r
+def LogClientInitialize(log_q):\r
#\r
# Since we use different format to log different levels of message into different\r
# place (stdout or stderr), we have to use different "Logger" objects to do this.\r
#\r
# For DEBUG level (All DEBUG_0~9 are applicable)\r
_DebugLogger.setLevel(INFO)\r
- _DebugChannel = logging.StreamHandler(sys.stdout)\r
+ _DebugChannel = logging.handlers.QueueHandler(log_q)\r
_DebugChannel.setFormatter(_DebugFormatter)\r
_DebugLogger.addHandler(_DebugChannel)\r
\r
# For VERBOSE, INFO, WARN level\r
_InfoLogger.setLevel(INFO)\r
- _InfoChannel = logging.StreamHandler(sys.stdout)\r
+ _InfoChannel = logging.handlers.QueueHandler(log_q)\r
_InfoChannel.setFormatter(_InfoFormatter)\r
_InfoLogger.addHandler(_InfoChannel)\r
\r
# For ERROR level\r
_ErrorLogger.setLevel(INFO)\r
- _ErrorCh = logging.StreamHandler(sys.stderr)\r
+ _ErrorCh = logging.handlers.QueueHandler(log_q)\r
_ErrorCh.setFormatter(_ErrorFormatter)\r
_ErrorLogger.addHandler(_ErrorCh)\r
\r
_InfoLogger.setLevel(Level)\r
_ErrorLogger.setLevel(Level)\r
\r
+## Initialize log system\r
+def Initialize():\r
+ #\r
+ # Since we use different format to log different levels of message into different\r
+ # place (stdout or stderr), we have to use different "Logger" objects to do this.\r
+ #\r
+ # For DEBUG level (All DEBUG_0~9 are applicable)\r
+ _DebugLogger.setLevel(INFO)\r
+ _DebugChannel = logging.StreamHandler(sys.stdout)\r
+ _DebugChannel.setFormatter(_DebugFormatter)\r
+ _DebugLogger.addHandler(_DebugChannel)\r
+\r
+ # For VERBOSE, INFO, WARN level\r
+ _InfoLogger.setLevel(INFO)\r
+ _InfoChannel = logging.StreamHandler(sys.stdout)\r
+ _InfoChannel.setFormatter(_InfoFormatter)\r
+ _InfoLogger.addHandler(_InfoChannel)\r
+\r
+ # For ERROR level\r
+ _ErrorLogger.setLevel(INFO)\r
+ _ErrorCh = logging.StreamHandler(sys.stderr)\r
+ _ErrorCh.setFormatter(_ErrorFormatter)\r
+ _ErrorLogger.addHandler(_ErrorCh)\r
+\r
def InitializeForUnitTest():\r
Initialize()\r
SetLevel(SILENT)\r