目录
一、oslo_log基础知识
1.oslo_log库简介
oslo_log库为所有的OpenStack项目提供了标准的日志处理方式,它实际上是对python的logging模块做了二次封装,使得接口更加优化,使用起来也更加的方便,极大的简化了使用代码量;因此它不仅可以用于OpenStack插件的的日志输出,也可以作为一个单独的模块供其他的项目使用。
2.日志级别
在记录日志时,需要设置级别,系统提供的日志级别有六种,从高到低分别为critical、error、warning、info、debug、notset。日志级别确定了日志打印的数量,级别越高,则输出的日志数量越少,具体如下:
- DEBUG:打印全部类型的日志(notset如同debug)。
- INFO:打印info/warning/error/critical级别的日志。
- WARNING:打印iwarning/error/critical级别的日志。
- ERROR:打印ierror/critical级别的日志。
- CRITICAL:打印critical级别的日志。
二、oslo_log的使用
1.oslo_log常用的配置项
debug = true
: 是否将日志级别设定为 DEBUGverbose = true
: 将日志级别设定为 INFO(true) 还是 WARNING(false)log_date_format = %Y-%m-%d %H:%M:%S
: 日志的日期格式log_file = <None>
: 日志文件名称log_dir = <None>
: 日志文件路径use_stderr = true
: 是否让日志以 system standard error 管道输出logging_context_format_string
: 日志内容格式default_log_levels
: 相关程序的默认日志级别instance_format
: instance 的日志打印格式, 所谓的上下文对象日志
2.注册日志配置项
日志的配置项定义通过oslo_config.cfg来定义,定义好之后通过oslo_log.log:register_options()方法来注册日志的配置项。
##日志项注册配置示例
from oslo_config import cfg
from oslo_log import log as logging
LOG = logging.getLogger(__name__)
CONF = cfg.CONF #创建一个CONF的实例
CONF.log_file = '/var/log/neutron/zhang.log' #配置日志存放路径
CONF.debug = 'true' #配置debug开
logging.register_options(CONF) #将日志的配置项进行注册
logging.setup(CONF, 'demo')
LOG.debug('ztest111')