用于向logdna发送日志的python包
logdna的Python项目详细描述
python包,用于登录logdna
- 安装
- 设置
- 用法
- api
- 许可证
- 设置
安装
$ pip install logdna
设置
importloggingfromlogdnaimportLogDNAHandlerkey='YOUR INGESTION KEY HERE'log=logging.getLogger('logdna')log.setLevel(logging.INFO)options={'hostname':'pytest','ip':'10.0.1.1','mac':'C0:FF:EE:C0:FF:EE'}# Defaults to false, when true ensures meta object will be searchableoptions['index_meta']=Truetest=LogDNAHandler(key,options)log.addHandler(test)log.warn("Warning message",{'app':'bloop'})log.info("Info message")
必需的
可选
- 主机名-(字符串)-最大长度32个字符
- MAC地址-(字符串)
- IP地址-(字符串)
- 最大长度-(布尔值)-格式化为选项["最大长度"]
- 索引meta-(布尔值)-格式化为选项["index_meta"]
用法
在初始设置之后,日志记录非常简单:
# Simplest use caselog.info('My Sample Log Line')# Add a custom levellog.info('My Sample Log Line',{'level':'MyCustomLevel'})# Include an App name with this specific loglog.info('My Sample Log Line',{'level':'Warn','app':'myAppName'})# Pass any associated objects along as metadatameta={'foo':'bar','nested':{'nest1':'nested text'}}opts={'level':'warn','meta':meta}log.info('My Sample Log Line',opts)
与文件配置一起使用
将logdnahandler
与fileconfig
一起使用(例如,在djangosettings.py
文件中):
importosimportloggingfromlogdnaimportLogDNAHandler# required to register `logging.handlers.LogDNAHandler`LOGGING={# Other logging settings...'handlers':{'logdna':{'level':logging.DEBUG,'class':'logging.handlers.LogDNAHandler','key':os.environ.get('LOGDNA_INGEST_KEY'),'options':{'app':'<app name>','env':os.environ.get('ENVIRONMENT'),'index_meta':<True|False>,},},},'loggers':{'':{'handlers':['logdna'],'level':logging.DEBUG},},}
(本例假设您已经为environment
和logdna摄取键设置了环境变量)
API
logdnahandler(键,[选项])
密钥< /H4>- 必需的
- 类型:
字符串
- 值:
yourapikey
字符串
yourapikey
与您的帐户关联的logdna api密钥。
选项
APP
- 可选
- 类型:
字符串
- 默认值:
''
- 值:
yourcustomapp
- 最大长度:
32
默认应用与通过此实例发送的每个日志一起传递。
Env
- 可选
- 类型:
字符串
- 默认值:
''
- 值:
yourcustomenv
- 最大长度:
32
默认env与通过此实例发送的每个日志一起传递。
主机名
- 可选
- 类型:
字符串
- 默认值:
''
- 值:
yourcustomhostname
- 最大长度:
32
默认主机名与通过此实例发送的每个日志一起传递。
包括标准配置
- 可选
- 类型:
布尔型
- 默认值:
false
布尔型
false
python在日志中包含可能是有用元数据的语言特定信息。将include_standard_meta
设置为true
将自动使用日志记录中的
名称
、路径名
和行号
填充元对象。有关这些值的详细信息,请参见logrecord
docs。
元索引
- 可选
- 类型:
布尔型
- 默认值:
false
我们允许在每一行中传递元对象。默认情况下,这些元对象TS将被严格化,并且不可搜索,但将显示为供参考。
如果将此选项设置为true,则将解析元对象,并可搜索到三层深度。任何深度超过三级的字段都将被严格限制,无法搜索。
警告如果此选项为真,则所有类型日志消息中的元数据对象必须具有一致的类型,否则可能无法正确分析元数据对象!
水平
- 可选
- 类型:
字符串
- 默认值:
信息
- 值:
调试
,跟踪
,信息
,警告
,错误
,致命
,自定义级别
- 最大长度:
32
默认级别随通过此实例发送的每个日志一起传递。
冗长
- 可选
- 键入:
string
或boolean
- 默认值:
true
- 值:false或任意级别
每次失败时日志语句的详细程度。
请求超时
- 可选
- 类型:
int
- 默认值:
30000
int
30000
请求在超时前等待LogDNA响应的时间。
标签
- 可选
- 键入:
string[]
- 默认值:
[]
用于动态分组主机的标记列表。有关标记的更多信息,请访问如何使用主机标记?
URL
- 可选
- 类型:
字符串
- 默认值:
'https://logs.logdna.com/logs/insert'
要将日志行流式处理到的自定义摄取终结点。
日志(行,[选项])
线
- 必需的
- 类型:
字符串
- 默认值:
''
- 最大长度:
32000
将发送到LogDNA系统的线路。
选项
水平
- 可选
- 类型:
字符串
- 默认值:
信息
- 值:
调试
,跟踪
,信息
,警告
,错误
,致命
,自定义级别
- 最大长度:
32
与此日志行一起传递的级别。
APP
- 可选
- 类型:
字符串
- 默认值:
''
- 值:
yourcustomapp
- 最大长度:
32
应用程序与此日志行一起传递。
Env
- 可选
- 类型:
字符串
- 默认值:
''
- 值:
yourcustomenv
- 最大长度:
32
使用此日志行传递的环境。
元
- 可选
- 类型:
json
- 默认值:
无
用于传递的日志行的其他元数据的元对象。请确保值是json可序列化的,
将删除不可JSON序列化的值,并将相应的键添加到\u errors
字符串中。
元索引
- 可选
- 类型:
布尔型
- 默认值:
false
我们允许在每一行中传递元对象。默认情况下,这些元对象将被字符串化,并且不可搜索, 但将显示以供参考。
如果将此选项设置为true,则将解析元对象,并可搜索到三层深度。任何深度超过三级的字段都将被严格限制,无法搜索。
警告当选项为true,所有类型日志消息中的元数据对象必须具有一致的类型,否则可能无法正确分析元数据对象!
时间戳
- 可选
- 默认值:
time.time()
时间戳(以毫秒为单位)必须在一天内,否则它将被删除,并将使用time.time()代替它。
许可证
麻省理工学院