コード例 #1
0
    def _config_handler(self,
                        handler: logging.Handler,
                        level: Union[str, int] = None,
                        formatter: Union[str, dict] = None,
                        set_from_master: bool = False):
        """
        Configure the handler's level and formatter

        :param handler: logging.Handler type object
        :param level: the level of the handler
        :param formatter: the formatter of the handler

        :param set_from_master: Set *level* or *formatter* from obj.master_level and obj.master_formatter

        """
        # Set level
        if level:
            log_level = self._get_level(level)
            handler.setLevel(log_level)
        elif set_from_master:
            handler.setLevel(self.master_level)

        # Set formatter
        if type(handler) == logging.StreamHandler:
            formatter_class = partial(ColorFormatter,
                                      color_config=self.color_config)
        else:
            formatter_class = logging.Formatter

        if formatter:
            self._set_formatter(handler, formatter_class, formatter)
        elif set_from_master:
            self._set_formatter(handler, formatter_class,
                                self.master_formatter)
コード例 #2
0
    def update_logger(self
            , new_logging_level: int
            , new_logging_handler: lg.Handler = None
            , new_logging_formatter: lg.Formatter = None
            ) -> LoggableObject:
        current_logger = self.logger(extend_logger_name = False)

        if new_logging_level is not None:
            current_logger.setLevel(new_logging_level)

        if new_logging_handler is not None:
            if new_logging_level is not None:
                new_logging_handler.setLevel(new_logging_level)
            if new_logging_formatter is not None:
                new_logging_handler.setFormatter(new_logging_formatter)

            for h in current_logger.handlers:
                if str(h) == str(new_logging_handler):
                    current_logger.removeHandler(h)
                    current_logger.addHandler(new_logging_handler)
                    break
            else:
                current_logger.addHandler(new_logging_handler)

        return self
コード例 #3
0
def configure_logging(
    stderr_handler: logging.Handler,
    quiet: bool,
    debug: bool,
    enable_color: bool,
    timestamps: bool,
    base_logger: logging.Logger = _logger,
) -> None:
    """Configure logging."""
    rdflib_logger = logging.getLogger("rdflib.term")
    rdflib_logger.addHandler(stderr_handler)
    rdflib_logger.setLevel(logging.ERROR)
    if quiet:
        # Silence STDERR, not an eventual provenance log file
        stderr_handler.setLevel(logging.WARN)
    if debug:
        # Increase to debug for both stderr and provenance log file
        base_logger.setLevel(logging.DEBUG)
        stderr_handler.setLevel(logging.DEBUG)
        rdflib_logger.setLevel(logging.DEBUG)
    fmtclass = coloredlogs.ColoredFormatter if enable_color else logging.Formatter
    formatter = fmtclass("%(levelname)s %(message)s")
    if timestamps:
        formatter = fmtclass(
            "[%(asctime)s] %(levelname)s %(message)s", "%Y-%m-%d %H:%M:%S"
        )
    stderr_handler.setFormatter(formatter)
コード例 #4
0
ファイル: config.py プロジェクト: mkim2001/openml-python
def _set_level_register_and_store(handler: logging.Handler, log_level: int):
    """ Set handler log level, register it if needed, save setting to config file if specified. """
    oml_level, py_level = _convert_log_levels(log_level)
    handler.setLevel(py_level)

    if openml_logger.level > py_level or openml_logger.level == logging.NOTSET:
        openml_logger.setLevel(py_level)

    if handler not in openml_logger.handlers:
        openml_logger.addHandler(handler)
コード例 #5
0
def configure_handler(
    handler: logging.Handler,
    level: int,
    formatter: logging.Formatter,
    filter_: logging.Filter = None,
):
    handler.setLevel(level)
    handler.setFormatter(formatter)
    if filter_:
        handler.addFilter(filter_)
    return handler
コード例 #6
0
ファイル: logginginit.py プロジェクト: kalitsos/Tichu-1
def register_handler(handler: logging.Handler, logger: logging.Logger, level: int, format_string: str, record_filter: logging.Filter, verbose: bool = True) -> None:
    handler.setLevel(level)
    formatter = logging.Formatter(format_string)
    handler.setFormatter(formatter)
    if record_filter:
        handler.addFilter(record_filter)
    logger.addHandler(handler)
    if verbose:
        print("------------- New Logging Handler ---------------")
        print("Added handler: {}".format(str(handler)))
        print("To Logger: {}".format(str(logger)))
        if record_filter:
            print("With Filter: {}".format(str(record_filter)))
コード例 #7
0
ファイル: logger.py プロジェクト: crytic/etheno
 def addHandler(self,
                handler: logging.Handler,
                include_descendants: bool = True,
                set_log_level: bool = True):
     if set_log_level:
         handler.setLevel(self.log_level)
     self._logger.addHandler(handler)
     self._handlers.append(handler)
     if include_descendants:
         self._descendant_handlers.append(handler)
         for child in self.children:
             if isinstance(child, EthenoLogger):
                 child.addHandler(handler,
                                  include_descendants=include_descendants,
                                  set_log_level=set_log_level)
             else:
                 child.addHandler(handler)
コード例 #8
0
def _add_handler(handler: logging.Handler,
                 logger: logging.Logger = logging.getLogger(),
                 name: str = 'log_handler',
                 level: int = logging.INFO,
                 fmt: str = default_fmt,
                 datefmt: str = default_date_fmt) -> logging.Handler:
    """
    >>> result = set_stream_handler()
    >>> result2 = set_stream_handler()

    """

    handler.addFilter(HostnameFilter())
    fmt = format_fmt(fmt)
    formatter = logging.Formatter(fmt, datefmt)
    handler.setFormatter(formatter)
    handler.setLevel(level)
    handler.name = name
    logger.addHandler(handler)
    return handler
コード例 #9
0
ファイル: logger.py プロジェクト: pArm-TFG/pArm-S1
def add_handler(handler: logging.Handler,
                logger_name: Optional[str] = None,
                level: int = logging.DEBUG,
                log_format: Optional[str] = None):
    """
    Adds a new handler to an existing logger, with the specified formatter
    in ```init_logging```. If a new format is specified (is not None) then
    it will be used for this handler.

    :param handler: the new handler to be added.
    :param logger_name: the logger name to which add the handler.
    :param level: the logging level for that formatter.
    :param log_format: the log format used if not formatter was created.
    """
    logger = logging.getLogger(logger_name)
    fmt = logging.Formatter(log_format) if log_format else logging.Formatter(
        LOG_DEFAULT_FORMAT)
    handler.setFormatter(fmt)
    handler.setLevel(level)

    logger.addHandler(handler)
コード例 #10
0
ファイル: handlers.py プロジェクト: mhooreman/clalogger
def _configureHandler(logger: logging.Logger, handler: logging.Handler,
                      formatter: logging.Formatter,
                      level: typing.Optional[Level]) -> None:
    """Configures the handler

    #. Sets the level to the given one or, if None, to the logger's level
    #. Sets the formatter to the given one
    #. Adds this handler to the logger

    It is called by internally by this package's handler
    """
    if level is None:
        handler.setLevel(logger.level)
    else:
        if isinstance(level, Level):
            level = level.value
        elif isinstance(level, (int, str)):
            handler.setLevel(level)
        else:
            raise TypeError("Wrong level type: %s" % type(level))
    handler.setFormatter(formatter)
    logger.addHandler(handler)
コード例 #11
0
ファイル: main.py プロジェクト: michael-kotliar/cwltool
def configure_logging(
    args: argparse.Namespace,
    stderr_handler: logging.Handler,
    runtimeContext: RuntimeContext,
) -> None:
    rdflib_logger = logging.getLogger("rdflib.term")
    rdflib_logger.addHandler(stderr_handler)
    rdflib_logger.setLevel(logging.ERROR)
    if args.quiet:
        # Silence STDERR, not an eventual provenance log file
        stderr_handler.setLevel(logging.WARN)
    if runtimeContext.debug:
        # Increase to debug for both stderr and provenance log file
        _logger.setLevel(logging.DEBUG)
        stderr_handler.setLevel(logging.DEBUG)
        rdflib_logger.setLevel(logging.DEBUG)
    fmtclass = coloredlogs.ColoredFormatter if args.enable_color else logging.Formatter
    formatter = fmtclass("%(levelname)s %(message)s")
    if args.timestamps:
        formatter = fmtclass("[%(asctime)s] %(levelname)s %(message)s",
                             "%Y-%m-%d %H:%M:%S")
    stderr_handler.setFormatter(formatter)
コード例 #12
0
    def __init__(self,
                 name: str,
                 strFormat: str,
                 handler: logging.Handler = logging.StreamHandler()):
        """
        Parameters
        ----------
        name: str
            The name to give this logger.
        strFormat: str
            The formatting string to use.
        handler: logging.StreamHandler, optional
            The handler to use.
        """
        self.log: logging.Logger = logging.getLogger(name)
        self.log.setLevel(logging.INFO)

        handler: logging.Handler = handler
        handler.setLevel(logging.INFO)
        handler.setFormatter(logging.Formatter(strFormat))

        self.log.addHandler(handler)
コード例 #13
0
def get_logger(name: str = None,
               handler: logging.Handler = None,
               level=logging.INFO,
               formatting: str = DEFAULT_FORMAT_STR,
               propagate: bool = False,
               print_trace_id: bool = True):
    logger = logging.getLogger(name)
    logger.setLevel(level)
    logger.propagate = propagate

    if not handler:
        handler = logging.StreamHandler(sys.stdout)
        handler.setLevel(level)

        # If APP_ENV is `test` or unset we use a colorful formatter 🌈.
        # Else we use a plain formatter to avoid passing ANSI color characters
        # into staging/prod env logs
        app_env = os.getenv('APP_ENV', TEST_ENV)
        if app_env == TEST_ENV:
            formatter = ColorfulFormatter(formatting)
        else:
            formatter = logging.Formatter(formatting)

        handler.setFormatter(formatter)
        if logger.hasHandlers():
            # To prevent the same stream handler from being added multiple times to the
            # same logger. If the same handler (stdout in this case) is added multiple
            # times to the same logger then each log will show up more and more times in
            # that stream.
            logger.handlers.clear()

    logger.addHandler(handler)

    if print_trace_id:
        logger = KubricLogAdapter(logger, {})
    return logger
コード例 #14
0
 def _add_handler(self, handler: logging.Handler) -> None:
     handler.setLevel(self._level.value)
     handler.setFormatter(self._format)
     self._logger.addHandler(handler)
コード例 #15
0
ファイル: Log.py プロジェクト: srtamrakar/python-logger
 def __add_handler(self, handler: logging.Handler,
                   add_colors: bool) -> NoReturn:
     handler.setLevel(self.log_level)
     handler.setFormatter(self.__get_formatter(add_colors=add_colors))
     self.__logger.addHandler(handler)
コード例 #16
0
 def addHandler(self, handler: logging.Handler, handlerLevel: int):
     handler.setLevel(handlerLevel)
     handler.setFormatter(logging.Formatter(self.formatStr))
     self.logger.addHandler(handler)
コード例 #17
0
 def _setHandlerDefaults(self, handler: logging.Handler) -> None:
     handler.setLevel(self.level)
     handler.setFormatter(self.formatter)
コード例 #18
0
ファイル: log.py プロジェクト: jbampton/pigweed
def _setup_handler(handler: logging.Handler, formatter: logging.Formatter,
                   level: int) -> None:
    handler.setLevel(level)
    handler.setFormatter(formatter)
    logging.getLogger().addHandler(handler)
コード例 #19
0
ファイル: logger.py プロジェクト: glichtner/pyperunner
 def add_handler(handler: logging.Handler, level: int) -> None:
     handler.setLevel(level)
     handler.setFormatter(formatter)
     logger.addHandler(handler)