在一些微服务或web服务中我们难免需要日志功能,用来记录一些用户的登录记录,操作记录,以及一些程序的崩溃定位,执行访问定位等等; Python内置 非常强大的日志模块 ==> logging 今天给大家分享一下以配置文件形式进行配置log日志 ; Centos6.7 Python3.6 logging0.5.1.2 logging模块有三个比较重要的功能组件: 1、loggers 配置文件可定义一些输出日志的appname 2、handler 过滤器,比如设置日志的分隔大小,输出位置,日志文件创建等 3、formatters 指定日志输出的格式 1: 创建一个文件,以.conf结尾 或以.in Python的logging模块是标准库中用于日志记录的重要工具,尤其在微服务和Web服务中,日志功能不可或缺,用于追踪用户活动、程序错误和性能分析。本文将深入讲解如何通过配置文件的方式来设置logging模块。 logging模块的三个核心组件是: 1. **loggers**:这是日志记录的起点,它们负责接收日志消息并将其传递给适当的处理器(handler)。配置文件中,可以定义多个loggers,每个具有特定的名称(appname),例如`root`、`error`和`info`。`root`是默认的logger,通常作为其他logger的父级。 2. **handler**:handler是日志消息的出口,它负责处理日志记录,包括决定日志的存储位置、文件分割大小、是否发送到控制台或文件等。在配置文件中,可以为每个logger指定多个handler,如`debugs`、`errors`和`infos`。 3. **formatters**:formatters定义了日志消息的输出格式,包括时间戳、文件名、级别和消息内容等。配置文件中,可以通过`formatter_keysname`来定义和引用不同的格式。 配置文件的创建过程如下: 1. 创建一个以`.conf`或`.ini`为扩展名的文件,例如`log.conf`。 2. 在文件中定义loggers,包括它们的级别(如`DEBUG`、`ERROR`或`INFO`)和handler。例如: ``` [loggers] keys=root,error,info [logger_root] level=DEBUG qualname=root handlers=debugs [logger_error] level=ERROR qualname=error handlers=errors [logger_info] level=INFO qualname=info handlers=infos ``` 3. 接下来定义handler,指定其类型(如`FileHandler`)和级别,以及日志格式和文件路径。例如: ``` [handlers] keys=infos,errors,debugs [handler_infos] class=FileHandler level=INFO formatter=form01 args=('info.log','a') [handler_errors] class=FileHandler level=DEBUG formatter=form02 args=('error.log','a') [handler_debugs] class=FileHandler level=DEBUG formatter=form02 args=('debug.log','a') ``` 4. 定义formatters,设置日志输出的具体格式,如时间戳格式和消息内容。例如: ``` [formatters] keys=form01,form02 [formatter_form01] format=%(asctime)s %(filename)s %(levelname)s %(message)s datefmt=%Y-%m-%d %H:%M:%S [formatter_form02] format=%(asctime)s %(filename)s %(levelname)s %(message)s datefmt=%Y-%m-%d %H:%M:%S ``` 5. 在Python程序中,使用`logging.config.fileConfig`加载配置文件,然后通过`logging.getLogger`获取logger实例并记录日志,例如: ```python import logging import logging.config logging.config.fileConfig('log.conf') logs = logging.getLogger('error') logs.error('An error occurred.') ``` 补充知识:为了更精细地管理日志,可以将不同级别的日志分别保存在不同的文件中。例如,使用自定义的handler,如`MultiprocessHandler`,可以实现多进程日志同步。同时,还可以通过设置filter来过滤特定的日志消息,或者通过`logging.handlers.RotatingFileHandler`来实现日志文件的自动滚动。 总结,Python的logging模块通过配置文件提供了灵活的日志管理能力,允许开发者根据需求定制日志的输出、级别和格式,从而更好地监控和调试应用程序。正确配置和使用logging模块,能显著提高开发和运维的效率。
- 粉丝: 3
- 资源: 909
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
评论0