Python Logging: dictConfig

前端 未结 2 807
慢半拍i
慢半拍i 2021-01-22 16:27

I am trying to use a config file for configure Python Logging, but also adding handlers after the dict config has been loaded. SO my config file is like

version:         


        
相关标签:
2条回答
  • 2021-01-22 16:50

    Ohh I figure it out. What I need to do is

    formatter =logging.Formatter(log_config_dict['formatters']['plain_formatter']['format'])             
    fhandler1.setFormatter(formatter)
    

    So, I need to create a Formatter object.

    0 讨论(0)
  • 2021-01-22 16:52
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    import logging
    import logging.handlers
    from logging.config import dictConfig
    
    logger = logging.getLogger(__name__)
    
    DEFAULT_LOGGING = {
        'version': 1,
        'disable_existing_loggers': False,
    }
    def configure_logging(logfile_path):
        """
        Initialize logging defaults for Project.
    
        :param logfile_path: logfile used to the logfile
        :type logfile_path: string
    
        This function does:
    
        - Assign INFO and DEBUG level to logger file handler and console handler
    
        """
        dictConfig(DEFAULT_LOGGING)
    
        default_formatter = logging.Formatter(
            "[%(asctime)s] [%(levelname)s] [%(name)s] [%(funcName)s():%(lineno)s] [PID:%(process)d TID:%(thread)d] %(message)s",
            "%d/%m/%Y %H:%M:%S")
    
        file_handler = logging.handlers.RotatingFileHandler(logfile_path, maxBytes=10485760,backupCount=300, encoding='utf-8')
        file_handler.setLevel(logging.INFO)
    
        console_handler = logging.StreamHandler()
        console_handler.setLevel(logging.DEBUG)
    
        file_handler.setFormatter(default_formatter)
        console_handler.setFormatter(default_formatter)
    
        logging.root.setLevel(logging.DEBUG)
        logging.root.addHandler(file_handler)
        logging.root.addHandler(console_handler)
    
    
    
    [31/10/2015 22:00:33] [DEBUG] [yourmodulename] [yourfunction_name():9] [PID:61314 TID:140735248744448] this is logger infomation from hello module
    

    I think config log with function is more convenient.

    0 讨论(0)
提交回复
热议问题