日志组件

日志支持多种存储方式:

  1. 控制台输出
  2. 打印到文件
  3. 打印到数据库
  4. 打印到MongoDB
  5. 打印到socket
  6. 打印到facebook scribe(最复杂)

python日志记录设施

class nd.rest.log.LogInfo(logfile='error.log', logtag='test', format_str=None)

日志记录类

>>> log_o = LogInfo("error.log")
>>> log_o.write("日志")
get_format()

返回格式

Returns:
get_format_str()
Returns:
get_log_file()

返回记录日志文件名

Returns:
output(loginfo, errorflag=0)
write(loginfo)

打印日志信息

参数 :
  • loginfo: 要被写入的日志信息

See also

output()

Facebook Scribe日志发送

使用facebook scribe接收日志,需要安装fb303、scribe、thrift这些第三方库,目前我还未打包上传-_-

http://log.qa.huayu.nd:8088

日志系统截图

_images/log_system.png
class nd.rest.logger.scribe_handler.ScribeHandler(log_tag=None)

日志Scribe处理器

将该handler加入日志记录设施,然后调用日志发送方法,即可发送到scribe服务器

日志查看地址

http://log.qa.huayu.nd:8088/

# 添加日志handler,写向Scribe日志服务器
>>> logger.addHandler(self.handler)
# 正常调用
>>> logger.info("Scribe日志测试: " + CoTime().iso8601())
close()

Closes the stream.

emit(record)

日志记录器日志发送函数

record 日志记录

logging模块中的record构造日志记录对象,可以直接用于传递给handler进行处理

log record对象格式:

// MakeRecord()

{
    levelname: "INFO"
}
>>> import logging
>>> ts_o = CoTime()
>>> ts_str = ts_o.iso8601()
>>> logger = logging.getLogger(__name__)
>>> logger.info(ts_str)