oslo_log是openstack中的日志模块,其对python logging的封装,可以快速便捷地写出我们的日志模块。官网上有许多参考示例,但实例永远是实例,其配合oslo_config模块,快捷注册日志,从而获取进程启动运行中的所有日志。官网资料详尽,参考https://docs.openstack.org/oslo.log/。

1.此处说明一点,关于LOG日志如何写入文件。

进程启动时,以ceilometer-agent-compute为例,除了有启动的脚本外,还有配置文件 --config-file 和 日志文件 --log-file:

在程序中,只需要将这些配置注册到oslo_config中,参考ceilometer的源码,编写一个例子,将进程的调用日志记录在文件中。

 from oslo_log import log
from oslo_config import cfg
import sys
LOG = log.getLogger(__name__) def prepare_service(argv=None, config_file=None):
log.register_options(cfg.CONF) # 注册配置项
log_level = cfg.CONF.default_log_levels # 设置默认日志级别INFO
log.set_defaults(default_log_levels=log_level)
if argv is None:
argv = sys.argv
cfg.CONF(argv[1:], project='ceilometer', default_config_files=config_file) # 将进程中配置文件或日志文件注册在配置项中
log.setup(cfg.CONF, 'ceilometer') # def print_log():
LOG.info("===>I LOVE YOU CAESAR<=====") prepare_service()
print_log()

进程启动时,带上日志路径参数,执行完成后,可在日志文件中看到执行结果。

2.oslo_config对配置项的默认管理,以上通过 --config-file 传入服务配置,--log-file 传入服务日志位置。对于config-file中未配置项,使用默认的配置,其定义、注册和调用,举例说明:

定义两个配置项 mongo_OPTS和OPTS

mongo_OPTS = [
cfg.StrOpt('database',
default='mongodb',
help='database'), ]
OPTS = [
cfg.IntOpt('max_retries',
default=3,
help="max connection to database times"
),
cfg.IntOpt('retry_interval',
default=60,
help='connection timeout 300 senconds'),
cfg.StrOpt('connection',
default='mongodb+mongodb://196.168.1.111:27017,'
'196.168.1.112:27017,'
'196.168.1.113:27017/test',
help='connection mongodb url')
]

将两个配置项分别注册在DEFAULT和mongodb 分组中方法见下:

def list_opts():
return [('MONGO',itertools.chain(OPTS)),
('DEFAULT', itertools.chain(mongo_OPTS)),
] conf = cfg.ConfigOpts() for group, options in list_opts():
conf.register_opts(list(options),
group=None if group == "DEFAULT" else group)

注册完成后,即可通过conf.database获取DEFAULT中定义的mongodb,通过conf.MONGO.connection 获取其中connection对应值。

基于oslo_log的日志管理的更多相关文章

  1. spring+mybatis基于 AOP实现业务日志管理

    最近在项目上用到了操作日志的相关,之前的解决方案就是自己写一个日志project,然后统一调用日志接口即可,这样方便自定义定制,因为有很多设备控制之类的都是需要确认一下的,但是,对数据的操作,比如,增 ...

  2. 基于吉日嘎底层架构的Web端权限管理操作演示-日志管理

    权限管理要实现的效果是对“ 谁”可以访问“什么内容”,可以进行“哪些操作” 一系列权限的精细化控制.衡量一个软件好坏的重要标准是:它的权限体系是否足够细致.是否可以立体勾勒出信息对象的访问控制.前面4 ...

  3. 基于Common.Logging + Log4Net实现的日志管理

    前言 Common.Logging 是Commons-Logging(apache最早提供的日志门面接口,提供了简单的日志实现以及日志解耦功能) 项目的.net版本.其目的是为 "所有的.n ...

  4. Spring基于AOP的事务管理

                                  Spring基于AOP的事务管理 事务 事务是一系列动作,这一系列动作综合在一起组成一个完整的工作单元,如果有任何一个动作执行失败,那么事务 ...

  5. 第13章 Linux日志管理

    1. 日志管理 (1)简介 在CentOS 6.x中日志服务己经由rsyslogd取代了原先的syslogd服务.rsyslogd日志服务更加先进,功能更多.但是不论该服务的使用,还是日志文件的格式其 ...

  6. ABP(现代ASP.NET样板开发框架)系列之8、ABP日志管理

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之8.ABP日志管理 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...

  7. ElasticSearch+NLog+Elmah实现Asp.Net分布式日志管理

    本文将介绍使用NLOG.Elmah结合ElasticSearch实现分布式日志管理. 一.ElasticSearch简介 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布 ...

  8. linux 学习 14 日志管理

    第十四讲 日志管理 14.1 日志管理-简介 .日志服务 在CentOS .x中日志服务已经由rsyslogd取代了原先的syslogd服务.rsyslogd日志服务更加先进,功能更多.但是不论该服 ...

  9. SQL Server中的事务日志管理(7/9):处理日志过度增长

    当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会 ...

随机推荐

  1. 1950261 - SAP HANA Database Backup Policy Recommendations and Regular Backup Script

    =====Symptom For SAP Business One, version for SAP HANA users, SAP HANA provides a range of database ...

  2. 读O目标KR关键结果的一些个人理解

    O目标KR关键结果 为了完成一个目标,需要完成几个或者多个关键的结果来验证. 书的开头写的是一些理论,有印象的东西还是从汉娜和杰克的公司来说,卖茶叶的公司.联系着茶农和可以产生消费的餐馆和供应商,在未 ...

  3. 13.App爬取相关库的安装(Charles,Mitmproxy,Appium)

    由于App没有像浏览器一样直观的后台请求工具,主要用一些抓包技术抓取数据.(目前也在学习安装,参考书籍.) 首先呢,一些简单的接口通过Charles或mitmproxy分析,找出规律,直接用程序去抓取 ...

  4. 1. @ModelAttribute注解

    添加@ModelAttribute修饰的方法,在每个目标方法调用前都会执行该方法. 一般情况下,在form表单修改的时,某项字段规定为不可更改,就需要使用该注解标注的方法,根据id的获取与否,来从数据 ...

  5. [记录] CSS 多行文本超出部分省略

    如果实现单行文本的溢出显示省略号同学们应该都知道用text-overflow:ellipsis属性来,当然还需要加宽度width属来兼容部分浏览 <p style="width: 30 ...

  6. VC中链接错误,提示string重定义

    VC链接错误,说是string已经有了实现了,只要 rebuild 一下好了. Linking...LINK : warning LNK4075: ignoring '/EDITANDCONTINUE ...

  7. vue的初识与简单使用---前后端分离通过接口调取数据

    vue的安装 #### .环境搭建 ''' - 安装node ``` 官网下载安装包,傻瓜式安装:https://nodejs.org/zh-cn/ ``` - 安装cnpm ``` npm inst ...

  8. Django权限auth模块详解

    转自:http://www.cnblogs.com/Finley/p/5575305.html 1,auth模块是Django提供的标准权限管理系统,可以提供用户身份认证,用户组和权限管理 2,aut ...

  9. intellij idea远程debug调试resin4教程

    昨天有个项目部署在阿里云 想远程调试不知道怎么弄.看日志需要账户密码很不方便呀.今天加班特意baidu了下. 1.先在远程的resin修改conf中resin.xml配置文件 在server-defa ...

  10. Linux命令:chown

    Linux命令:chmod https://baijiahao.baidu.com/s?id=1616750933810368135&wfr=spider&for=pc chmod - ...