How to write to a file, using the logging Python module?

后端 未结 9 2056
天涯浪人
天涯浪人 2020-11-27 10:34

How can I use the logging module in Python to write to a file? Every time I try to use it, it just prints out the message.

9条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-11-27 10:52

    This example should work fine. I have added streamhandler for console. Console log and file handler data should be similar.

        # MUTHUKUMAR_TIME_DATE.py #>>>>>>>> file name(module)
    
        import sys
        import logging
        import logging.config
        # ================== Logger ================================
        def Logger(file_name):
            formatter = logging.Formatter(fmt='%(asctime)s %(module)s,line: %(lineno)d %(levelname)8s | %(message)s',
                                          datefmt='%Y/%m/%d %H:%M:%S') # %I:%M:%S %p AM|PM format
            logging.basicConfig(filename = '%s.log' %(file_name),format= '%(asctime)s %(module)s,line: %(lineno)d %(levelname)8s | %(message)s',
                                          datefmt='%Y/%m/%d %H:%M:%S', filemode = 'w', level = logging.INFO)
            log_obj = logging.getLogger()
            log_obj.setLevel(logging.DEBUG)
            # log_obj = logging.getLogger().addHandler(logging.StreamHandler())
    
            # console printer
            screen_handler = logging.StreamHandler(stream=sys.stdout) #stream=sys.stdout is similar to normal print
            screen_handler.setFormatter(formatter)
            logging.getLogger().addHandler(screen_handler)
    
            log_obj.info("Logger object created successfully..")
            return log_obj
        # =======================================================
    
    
    MUTHUKUMAR_LOGGING_CHECK.py #>>>>>>>>>>> file name
    # calling **Logger** function
    file_name = 'muthu'
    log_obj =Logger(file_name)
    log_obj.info("yes   hfghghg ghgfh".format())
    log_obj.critical("CRIC".format())
    log_obj.error("ERR".format())
    log_obj.warning("WARN".format())
    log_obj.debug("debug".format())
    log_obj.info("qwerty".format())
    log_obj.info("asdfghjkl".format())
    log_obj.info("zxcvbnm".format())
    # closing file
    log_obj.handlers.clear()
    
    OUTPUT:
    2019/07/13 23:54:40 MUTHUKUMAR_TIME_DATE,line: 17     INFO | Logger object created successfully..
    2019/07/13 23:54:40 MUTHUKUMAR_LOGGING_CHECK,line: 8     INFO | yes   hfghghg ghgfh
    2019/07/13 23:54:40 MUTHUKUMAR_LOGGING_CHECK,line: 9 CRITICAL | CRIC
    2019/07/13 23:54:40 MUTHUKUMAR_LOGGING_CHECK,line: 10    ERROR | ERR
    2019/07/13 23:54:40 MUTHUKUMAR_LOGGING_CHECK,line: 11  WARNING | WARN
    2019/07/13 23:54:40 MUTHUKUMAR_LOGGING_CHECK,line: 12    DEBUG | debug
    2019/07/13 23:54:40 MUTHUKUMAR_LOGGING_CHECK,line: 13     INFO | qwerty
    2019/07/13 23:54:40 MUTHUKUMAR_LOGGING_CHECK,line: 14     INFO | asdfghjkl
    2019/07/13 23:54:40 MUTHUKUMAR_LOGGING_CHECK,line: 15     INFO | zxcvbnm
    
    Thanks, 
    

提交回复
热议问题