标记为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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
javapojo到org。布森。文件,反之亦然   java突然增加了G1老一代的承诺内存,减少了Eden的大小   java为什么对多个RXJava观察对象不执行并行执行?   java中的枚举是故障安全的吗?如果是,怎么做?   java是等待字符串变为相等的正确方法   java CodeAbbey挑战14个数据输入问题?   在java中的任意位置插入。util。列表   java替换html中的值   java需要帮助破译一个小堆栈跟踪:我使用的是哪种WS?   java Guice依赖项注入器空指针异常   java如何在3D引擎中实现视图剪裁平面?   JavaEclipseRCP:操作与命令需要更新   java如何使用XPAGES DesignerFacesServlet显示泰语字母(以及另一个亚洲/阿拉伯字母)   java装饰器模式问题   java我对空间复杂性的分析正确吗?   不显示java OpenGL ES 2纹理   使用java问题中的wc命令计算行数   java为什么空指针异常取决于条件的顺序?   Java日期在同一天或同一个月   java在使用lambda表达式时在变量中存储一些值