python“logging”功能的扩展。
logging-fortified的Python项目详细描述
强化伐木
这个python项目是本地python组件logging的扩展。 为标准和json日志输出提供更健壮的消息格式,并允许额外的 作为字典填充的内容。
重要提示
这个python项目是logging-mv-integrations的重构 出于一般使用目的。
安装
pip install logging_fortified
架构
logging-fortified是logging facility for Python的扩展 用于提供自定义记录器级别、格式和输出。
函数:get_logger()
defget_logger(logger_name,logger_version=None,logger_level=logging.INFO,logger_format=LoggingFormat.JSON,logger_output=LoggingOutput.STDOUT_COLOR,logger_handler=None):
get_logger():参数
Parameter | Purpose |
---|---|
logger_name | Return a logger with the specified name or, if name is None, return a logger which is the root logger of the hierarchy. |
logger_version | |
logger_format | LoggingFormat |
logger_output | LoggingOutput |
logger_handler | logging.StreamHandler() or logging.FileHandler() |
测井水平
相同的python日志记录级别,包括一个额外的级别说明。
Level | Purpose |
---|---|
DEBUG | Detailed information, typically of interest only when diagnosing problems. |
NOTE | Detailed information, request processing, for example, request using cURL. |
INFO | Confirmation that things are working as expected. [DEFAULT] |
WARNING | An indication that something unexpected happened, or indicative of some problem in the near future. The software is still working as expected. |
ERROR | Due to a more serious problem, the software has not been able to perform some function. |
CRITICAL | A serious error, indicating that the program itself may be unable to continue running. |
日志格式
Format | Purpose |
---|---|
STANDARD | Standard logging format. |
JSON | JSON logging format. [DEFAULT] |
classLoggingFormat(object):"""TUNE Logging Format ENUM """STANDARD="standard"JSON="json"
记录输出
Output | Purpose |
---|---|
STDOUT | Standard Output to terminal |
STDOUT_COLOR | Standard Output using colored terminal |
FILE | Standard Output to file created within ./tmp/log_<epoch time seconds>.json. |
classLoggingOutput(object):"""Logging Format ENUM """STDOUT="stdout"STDOUT_COLOR="color"FILE="file"
记录json格式
importloggingfromlogging_fortifiedimport(LoggingFormat,get_logger,__version__)log=get_logger(logger_name=__name__,logger_version=__version__,logger_format=LoggingFormat.JSON,logger_level=logging.NOTE)log.info("logging: info",extra={'test':__name__})log.note("logging: note",extra={'test':__name__})log.debug("logging: debug",extra={'test':__name__})log.warning("logging: warning",extra={'test':__name__})log.error("logging: error",extra={'test':__name__})log.critical("logging: critical",extra={'test':__name__})log.exception("logging: exception",extra={'test':__name__})
记录json示例输出
$ python3 examples/example_logging_json.py {"asctime": "2018-05-11 05:41:39 -0700", "levelname": "INFO", "name": "__main__", "version": "0.1.6", "message": "logging: info", "test": "__main__"}{"asctime": "2018-05-11 05:41:39 -0700", "levelname": "NOTE", "name": "__main__", "version": "0.1.6", "message": "logging: note", "test": "__main__"}{"asctime": "2018-05-11 05:41:39 -0700", "levelname": "WARNING", "name": "__main__", "version": "0.1.6", "message": "logging: warning", "test": "__main__"}{"asctime": "2018-05-11 05:41:39 -0700", "levelname": "ERROR", "name": "__main__", "version": "0.1.6", "message": "logging: error", "test": "__main__"}{"asctime": "2018-05-11 05:41:39 -0700", "levelname": "CRITICAL", "name": "__main__", "version": "0.1.6", "message": "logging: critical", "test": "__main__"}{"asctime": "2018-05-11 05:41:39 -0700", "levelname": "ERROR", "name": "__main__", "version": "0.1.6", "message": "logging: exception", "exc_info": "NoneType: None", "test": "__main__"}
要求
logging-fortified模块基于python 3构建,并且依赖于 Python Package Index PyPI中提供了几个python模块。
make install-requirements
或
python3 -m pip uninstall --yes --no-input -r requirements.txt python3 -m pip install --upgrade -r requirements.txt