在一些微服务或web服务中我们难免需要日志功能,用来记录一些用户的登录记录,操作记录,以及一些程序的崩溃定位,执行访问定位等等;
Python内置 非常强大的日志模块 ==> logging 今天给大家分享一下以配置文件形式进行配置log日志 ;
Centos6.7
Python3.6
logging0.5.1.2
logging模块有三个比较重要的功能组件:
1、loggers 配置文件可定义一些输出日志的appname
2、handler 过滤器,比如设置日志的分隔大小,输出位置,日志文件创建等
3、formatters 指定日志输出的格式
1: 创建一个文件,以.conf结尾 或以.ini结尾(PS: 其他的结尾没试过,你可以试试)
vim log.conf
2: 定义日志输出的APP名,指定过滤器这里用loggers功能
[loggers] #固定写法
keys=root,error,info #创建三个app名,root是父类,必需存在的
[logger_root] #创建完的app名我们要定义一些规则,严格要求格式为"logger_appname"
level=DEBUG #设置日志级别
qualname=root #这里在"root"appname下可以不填,所有没获取get的情况下默认app名都是root
handlers=debugs #设置指定过滤器,多个以逗号分隔,这个名字待会儿 我们会以固定格式"handler_(value)"创建
[logger_error]
level=ERROR
qualname=error #除了root appname以外,定义的app名必须要设置这个属性,用于定义打印输出时候的app名
handlers=errors
[logger_info]
level=INFO
qualname=INFO
handlers=infos
3: 定义日志过滤器这里用handler功能
[handlers] #固定格式
keys=infos,errors,debugs #定义过滤器名称,下面定义以handler_keysname格式定义,上面引用名称必须和keys一致
[handler_infos]
class=FileHandler #指定过滤器组件,详情请看官网,这个是以文件方式创建
level=INFO #设置级别
formatter=form01 #定义日志打印格式,下面会创建formatters,格式也是严格要求formatter_keysname 创建
args=("info.log","a") #创建文件名字,以什么方式打开
[handler_errors]
class=FileHandler
level=DEBUG
formatter=form02
args=("info1.log","a")
[handler_debugs]
class=FileHandler
level=DEBUG
formatter=form02
args=("info1.log","a")
3: 定义日志输出格式,这里我们介绍最后一个组件formatters
[formatters] #固定格式
keys=form01,form02 #定义名称,下面会引用格式同上
[formatter_form01]
format=%(asctime)s