"" " author: htfang date : 2014 12 15 logging module , use multiple logs without A log config file "" "import loggingfrom logging import (DEBUG, CRITICAL, FATAL, ERROR, WARNING, warn, &Nbsp; info, DEBUG, notset) Import sysclass logbuilder (): "" " as a rookie, you need ' Nt know how this builder construct, just learn how to use it!!! example: log = logbuilder () fd _log = log.getlogger ("FD") mq_log = log.getlogger ("MQ") fd_log.error ("error") mq_log.info ("info") if you module need log, &nbsP; first add a item in log_names,appiont handlers and log level (NI DONG DE!!!) second config your handlers in FILE_HANDLERS or stream_handlers whitch you appiont in log_names, then select or add a format to your handlers in formatters "" " LOG_NAMES = { "FD": {"Handlers": ["Frame", "stderr",], "level":D ebug}, "MQ": {"Handlers": ["RABBITMQ", "stderr",], "level":D ebug}, } FILE_HANDLERS = { "Frame": {"FileName": "Frame.log", "format": "DFT"}, "RABBITMQ": {"FileName": "Rabbitmq.log" , "format": "DFT"}, } stream_handlers = { "stdin": {"FileName": sys.stdin, "format": "DFT"}, " StdOut ": {" fileName ":sys.stdout, " format ":" DFT "}, "stderr": {"fileName":sys.stderr, "format": "DFT"}, } FORMATTERS = { "DFT": {"FMT":("% (name) s % (asctime) s % (filename) s[line:% (Lineno) d]% (levelname ) s:% (message) S ", '%A, %D %B&Nbsp;%y %h:%m:%s ')}, } def __ Init__ (self): for format_name in self. formatters: formatter = Logging. Formatter (self. formatters[format_name]["FMT"][0], self. formatters[format_name]["FMT"][1]) self . formatters[format_name]["Formatter"] = formatter for handler_name in self. file_handlers: file_handler = logging. Filehandler (self. file_handlers[handler_name]["FileName"]) File_handler.setformatter (self. Formatters[self. file_handlers[handler_name]["format"]]["Formatter"]) self. file_handlers[handler_name]["Handler"] = file_handler for handler_name in self. stream_handlers: stream_handler = logging. Streamhandler (self. stream_handlers[handler_name]["FileName"]) stream_handler.setformatter (self. Formatters[self. stream_handlers[handler_name]["format"]]["Formatter"]) self. stream_handlers[handler_name]["Handler"] = stream_handler for log_name in self. Log_names: &nbsP;logger = logging.getlogger (Log_name) for handler_name in self. log_names[log_name]["Handlers"]: try: logger.addhandler (self. file_handlers[handler_name]["Handler"]) except: logger.addhandler (self. stream_handlers[handler_name]["Handler"]) else: pass &nBsp; logger.setlevel (self. Log_names[log_name]["Level"]) self. log_names[log_name]["Logger"] = logger def getlogger (self,log_name): return self. log_names[log_name]["Logger"] log = logbuilder ()
Python log module (without a configuration file)