标记为TSV记录器。
ltsvlogger的Python项目详细描述
基本功能
- 提供ltsvlogger.ltsvformatter以格式化ltsv输出。
- 提供ltsvlogger.ltsvloggeradapter以便于使用。
要求
- python 2.6、2.7、3.2、3.3、3.4、3.5、pypy。
安装
建议:使用virtualenv执行此过程:
$ pip install ltsvlogger
如果要安装未发行的版本:
$ pip install https://bitbucket.org/shimizukawa/ltsvlogger/get/tip.zip
使用示例
按代码设置记录器
import logging from ltsvlogger import LTSVFormatter, LTSVLoggerAdapter formatter = LTSVFormatter(fields={ 'asctime': 'time', 'user': 'user', 'host': 'host', 'message': 'message', }) logger = logging.getLogger('code') hdr = logging.StreamHandler() hdr.setLevel(logging.INFO) hdr.setFormatter(formatter) logger.addHandler(hdr) # extra keyword argument values fill into format string placeholder. # If formatter did not have 'user' and host' placeholder, these # values will be simply omitted. logger.error( 'This is a error message with %s', 'extra arguments', extra=dict( user='spam', host='ham.example.com', ) )
输出样本:
host:ham.example.com\tmessage:This is a error message with extra arguments\tuser:spam\ttime:2013-09-27T09:21:03+00:00
如果要按顺序输出字段,可以使用fmt参数设置格式化程序,如logging.formatter参数:
formatter = LTSVFormatter( 'time:%(asctime)s\tuser:%(user)s\thost:%(host)s\tmessage:%(message)s' )
使用ltsvloggeradapter
按代码设置记录器import logging from ltsvlogger import LTSVFormatter, LTSVLoggerAdapter formatter = LTSVFormatter() logger = logging.getLogger('adapter') hdr = logging.StreamHandler() hdr.setLevel(logging.INFO) hdr.setFormatter(formatter) logger.addHandler(hdr) # LTSVLoggerAdapter will extract keyword argument into log format. ltsvlogger = LTSVLoggerAdapter(logger) ltsvlogger.error( 'This is a error message with %s', 'keyword arguments', user='spam', host='ham.example.com', )
输出样本:
process_name:MainProcess\tlogger_name:sample\tthread_id:140654083024640\ttime:2013-09-27T08:49:53+00:00\tprocess_id:17807\tmessage:This is a error message with keyword arguments\thost:ham.example.com\tuser:spam\tthread_name:MainThread\tlog_level:ERROR
按配置设置记录器
为logger准备logger.ini:
[loggers] keys = root,demo [handlers] keys = ltsvhdr [formatters] keys = ltsvfmt [logger_root] level = DEBUG handlers = [logger_demo] level = DEBUG handlers = ltsvhdr qualname = demo [handler_ltsvhdr] class = StreamHandler args = (sys.stderr,) level = DEBUG formatter = ltsvfmt [formatter_ltsvfmt] format = time:%(asctime)s\tlogger_name:%(name)s\tmessage:%(message)s datefmt = %Y-%m-%dT%H:%M:%S%z class = ltsvlogger.LTSVFormatter
并使用:
import logging.config logging.config.fileConfig('logger.ini') logger = logging.getLogger('demo') ltsvlogger = LTSVLoggerAdapter(logger) ltsvlogger.warning( 'This is a warning message with %s', 'keyword arguments', user='spam', host='ham.example.com', )
输出样本:
time:2013-09-27T08:49:53+00:00\tlogger_name:demo\tmessage:This is a warning message with keyword arguments\thost:ham.example.com\tuser:spam
更改
0.9.1(2015-09-28)
错误修复。
- 公关1.修正打字错误。多亏了和歌山。
- 公关2.修正:删除多余的标签时,没有额外的KWARGS是通过。多亏了 川崎俊彦。
0.9.0(2013-10-02)
第一次释放。
- 提供ltsvlogger.ltsvformatter
- 提供ltsvlogger.ltsvloggeradapter