Python日志处理
Posted 银色之刃
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python日志处理相关的知识,希望对你有一定的参考价值。
为了进行多进程的日志记录,设计以下日志类Logger()。
向logger_record送入logger_level及logger_message即可在控制台和日志文件中输出相关信息。
1 import logging 2 import sys 3 4 5 class Logger(): 6 ‘‘‘ 7 日志处理类 8 ‘‘‘ 9 __logger = None 10 11 def __init__(self, log_file="", log_console=False, log_format="%(asctime)s - %(levelname)s - %(message)s", log_setlevel=logging.DEBUG): 12 ‘‘‘ 13 构造函数:根据参数设置__logger 14 ‘‘‘ 15 # 如果未设置日志文件和控制台,返回None,结束运行 16 if log_file == "" and log_console is False: 17 return None 18 else: 19 # 日志处理基本设置 20 self.__logger = logging.getLogger(__name__) # 新建一个logging对象 21 self.__logger.setLevel(level=log_setlevel) # 设置日志记录等级 22 logging_formatter = logging.Formatter(log_format) 23 # 如果定义了日志文件,则设置日志文件 24 if log_file != "": 25 # 设置日志文件 26 logging_file = logging.FileHandler(log_file) 27 logging_file.setLevel(level=log_setlevel) 28 logging_file.setFormatter(logging_formatter) 29 self.__logger.addHandler(logging_file) 30 # 如果定义了控制台,则设置控制台 31 if log_console is True: 32 # 设置控制台 33 logging_console = logging.StreamHandler(stream=sys.stdout) 34 logging_console.setLevel(level=log_setlevel) 35 logging_console.setFormatter(logging_formatter) 36 self.__logger.addHandler(logging_console) 37 38 def logger_record(self, logger_level, logger_message): 39 ‘‘‘日志记录进程‘‘‘ 40 if logger_level == ‘DEBUG‘: 41 self.__logger.debug(logger_message) 42 if logger_level == ‘INFO‘: 43 self.__logger.info(logger_message) 44 if logger_level == ‘WARNING‘: 45 self.__logger.warning(logger_message) 46 if logger_level == ‘ERROR‘: 47 self.__logger.error(logger_message) 48 if logger_level == ‘CRITICAL‘: 49 self.__logger.critical(logger_message) 50 51 52 if __name__ == ‘__main__‘: 53 log = Logger(log_file=r‘.log est.log‘, log_console=True) 54 log.logger_record(‘INFO‘, ‘hello,world!‘)
以上是关于Python日志处理的主要内容,如果未能解决你的问题,请参考以下文章
在 Python 多处理进程中运行较慢的 OpenCV 代码片段
你如何在 python 中处理 graphql 查询和片段?
python分析apache和nginx日志文件输出访客ip列表的代码
我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情