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 查询和片段?

argparse 代码片段只打印部分日志

python+spark程序代码片段

python分析apache和nginx日志文件输出访客ip列表的代码

我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情