用于配置 Python 日志记录的简单辅助模块
项目描述
用于配置 Python 日志记录的简单助手模块。
要求
兼容性
蟒蛇2.6
蟒蛇 2.7
蟒蛇 3.2
蟒蛇 3.3
蟒蛇 3.4
依赖项
PyYAML
logutils(如果使用 Python 2)
安装
pip install logconfig
概述
这个简单的库公开了几个用于配置标准库的日志记录模块的辅助方法。没什么好看的。在后台 logconfig使用logging.config来加载各种配置格式。
除了配置加载之外,logconfig还提供了帮助器,用于轻松转换配置的记录器的处理程序利用队列。
支持的配置格式
JSON
YAML
配置解析器
Python 字典
快速开始
配置加载
import logconfig
import logging
# Load config from JSON file
logconfig.from_json('path/to/file.json')
# Load config from YAML file
logconfig.from_yaml('path/to/file.yml')
# Load config from ConfigParser file
logconfig.from_yaml('path/to/file.cfg')
# Load config from dict
logconfig.from_dict(config_dict)
log = logging.getLogger()
log.debug('Configuration loaded using logconfig')
队列利用率
import logconfig
import logging
logconfig.from_dict({
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console': {
'class': 'logging.StreamHandler',
'level': 'DEBUG'
}
},
'loggers': {
'mylogger': {
'handlers': ['console']
}
}
})
# Convert logger's handlers to utilize a queue
queue = logconfig.Queue(-1)
listener = logconfig.QueueListener(queue)
handler = logconfig.QueueHandler(queue)
mylogger = logging.getLogger('mylogger')
# You can also pass in the logger name instead of the actual logger.
# logconfig.queuify_logger('mylogger', handler, listener)
logconfig.queuify_logger(mylogger, handler, listener)
assert isinstance(mylogger.handlers[0], logconfig.QueueHandler)
# Start the listener.
listener.start()
# When finished, stop the listener.
# This is optional, but not doing so may prevent some logs from being processed.
listener.stop()
用法
使用logconfig轻松加载日志记录配置。有关配置日志记录的更多详细信息,请访问https://docs.python.org/library/logging.config.html。
import logconfig
来自 JSON 的配置
使用 JSON 文件配置日志记录。
logconfig.from_json(filename)
示例 JSON 文件:
{
"version": 1,
"disable_existing_loggers": false,
"formatters": {
"simple": {
"format": "%(asctime)s. - %(name)s - %(levelname)s - %(message)s"
}
},
"handlers": {
"console": {
"class": "logging.StreamHandler",
"level": "DEBUG",
"formatter": "simple",
"stream": "ext://sys.stdout"
}
},
"root": {
"level": "DEBUG",
"handlers": ["console"]
}
}
来自 YAML 的配置
使用 YAML 文件配置日志记录。
logconfig.from_yaml(filename)
示例 YAML 文件:
version: 1
disable_existing_loggers: False
formatters:
simple:
format: <s>"%(asctime)s.</s> <s>-</s> <s>%(name)s</s> <s>-</s> <s>%(levelname)s</s> <s>-</s> <s>%(message)s"</s>
handlers:
console:
class: logging.StreamHandler
level: DEBUG
formatter: simple
stream: ext://sys.stdout
root:
level: DEBUG
handlers: [console]
来自 ConfigParser 文件的配置
使用 ConfigParser 兼容文件配置日志记录。
logconfig.from_file(filename)
示例 CFG 文件:
[loggers]
keys=<s>root</s>
[handlers]
keys=<s>console</s>
[formatters]
keys=<s>simple</s>
[logger_root]
level=<s>DEBUG</s>
handlers=<s>console</s>
[handler_console]
class=<s>StreamHandler</s>
level=<s>DEBUG</s>
formatter=<s>simple</s>
args=<s>(sys.stdout,)</s>
[formatter_simple]
format=<s>%(asctime)s - %(name)s - %(levelname)s - %(message)s</s>
来自字典的配置
使用 Python 字典配置日志记录。
logconfig.from_dict(dct)
示例字典:
{
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'simple': {
'format': '%(asctime)s. - %(name)s - %(levelname)s - %(message)s'
}
},
'handlers': {
'console': {
'formatter': 'simple',
'class': 'logging.StreamHandler',
'level': 'DEBUG',
'stream': 'ext://sys.stdout'
}
},
'root': {
'handlers': ['console'],
'level': 'DEBUG'
}
}
来自自动检测的配置
如果,无论出于何种原因,您不知道配置的来源是什么(或者您只是觉得幸运),那么您可以尝试使用以下自动检测方法之一来强制记录配置:
logconfig.from_filename(filename)
logconfig.from_autodetect(filename_or_dict)
try:
logconfig.from_filename(filename)
logconfig.from_autodetect(filename_or_dict)
except logconfig.LogConfigException as ex:
# Unrecognized configuration argument.
pass
这些方法将尝试将函数参数分派到正确的配置加载器或尝试失败。
从环境变量配置
使用通过环境变量提供的文件名配置日志记录。
logconfig.from_env(variable_name)
注意:环境变量值将传递给from_filename()。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
logconfig-0.4.0.tar.gz
(7.8 kB
查看哈希)
内置分布
logconfig-0.4.0-py2.py3-none-any.whl
(9.9 kB
查看哈希)