class_docstr: This class appends request context to logged messages.
class_docstr_tok: ["This","class","appends","request","context","to","logged","messages","."]
docstr: Log message with or without call ID. If call context is logged and
  call ID added to any log entry is specified by if context logging
  is enabled (see CallContext.enable_context_logging for more details).
  
  Parameters
  ----------
  level: int
      Log level: logging.CRITICAL, ERROR, WARNING, INFO, DEBUG, NOTSET.
  
  msg: str
      Message format string.
  
  args
      Same as args in Logger.debug().
  
  kwargs
      Same as kwargs in Logger.debug().
docstr_tok: ["Log","message","with","or","without","call","ID",".","If","call","context","is","logged","and","call","ID","added","to","any","log","entry","is","specified","by","if","context","logging","is","enabled","(","see","CallContext.enable_context_logging","for","more","details",")",".","Parameters","--","--","--","--","--","level",":","int","Log","level",":","logging.CRITICAL",",","ERROR",",","WARNING",",","INFO",",","DEBUG",",","NOTSET",".","msg",":","str","Message","format","string",".","args","Same","as","args","in","Logger.debug","(",")",".","kwargs","Same","as","kwargs","in","Logger.debug","(",")","."]
code: def log(self, level: int, msg: str):
      """
      Log message with or without call ID. If call context is logged and
      call ID added to any log entry is specified by if context logging
      is enabled (see CallContext.enable_context_logging for more details).
  
      Parameters
      ----------
      level: int
          Log level: logging.CRITICAL, ERROR, WARNING, INFO, DEBUG, NOTSET.
  
      msg: str
          Message format string.
  
      args
          Same as args in Logger.debug().
  
      kwargs
          Same as kwargs in Logger.debug().
      """
      extended_msg = msg
      if self.log_request_context:
          if not self.request_context_logged:
              self._log_context_info()
  
          extended_msg += f", <<call ID: {self.call_id}>>"
  
      logging.getLogger(__name__).log(level, extended_msg)
  
imports: import base64
  import binascii
  import concurrent
  import json
  import logging
  import tornado.web
  from tabpy.tabpy_server.app.app_parameters import SettingsParameters
  from tabpy.tabpy_server.handlers.util import hash_password
  from tabpy.tabpy_server.handlers.util import AuthErrorStates
  import uuid
label_desc: Use image node_id 7 for calling the ContextLoggerWrapper obj's underlying member method code with example usage: obj.log(level, msg) without return types