docstr: Log 'msg % args' with severity 'INFO'.
  
  To pass exception information, use the keyword argument exc_info with
  a true value, e.g.
  
  logger.info("Houston, we have a %s", "interesting problem", exc_info=1)
docstr_tok: ["Log","'msg","%","args","'","with","severity","'INFO","'",".","To","pass","exception","information",",","use","the","keyword","argument","exc_info","with","a","true","value",",","e.g",".","logger.info","(","``","Houston",",","we","have","a","%","s","''",",","``","interesting","problem","''",",","exc_info=1",")"]
code: def info(self, msg, *args, mode=LogMode.EACH, **kwargs):
      """
      Log 'msg % args' with severity 'INFO'.
  
      To pass exception information, use the keyword argument exc_info with
      a true value, e.g.
  
      logger.info("Houston, we have a %s", "interesting problem", exc_info=1)
      """
      if (
          self._logger is not None
          and self._logger.isEnabledFor(Logger.INFO)
          and not self._logged_once(msg, mode)
      ):
          self._logger._log(Logger.INFO, msg, args, **kwargs)
  
imports: import enum
  import logging
  import sys
  import threading
  import warnings
  from contextlib import contextmanager
  from logging.handlers import MemoryHandler
  from nemo.constants import NEMO_ENV_VARNAME_REDIRECT_LOGS_TO_STDERR, NEMO_ENV_VARNAME_TESTING
  from nemo.utils.env_var_parsing import get_envbool
  from nemo.utils.formatters.base import BaseNeMoFormatter, DebugNeMoFormatter
  from nemo.utils.get_rank import is_global_rank_zero
  from nemo.utils.metaclasses import Singleton
label_desc: Use image node_id 19 for calling the Logger obj's underlying member method code with example usage: obj.info(msg) without return types