跳转到主要内容

标签化的TSV日志记录器。

项目描述

基本功能

  • 提供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.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)

错误修复。

  • PR#1. 修复拼写错误。感谢WAKAYAMA shirou。

  • PR#2. 修复:当没有传递额外的kwargs时删除多余的制表符。感谢Toshiya Kawasaki。

0.9.0 (2013-10-02)

首次发布。

  • 提供ltsvlogger.LTSVFormatter

  • 提供ltsvlogger.LTSVLoggerAdapter

项目详情


下载文件

下载适用于您平台文件的文件。如果您不确定选择哪个,请了解更多有关安装软件包的信息。

源代码分发

ltsvlogger-0.9.1.tar.gz (4.7 kB 查看哈希值)

上传时间 源代码

构建分发

ltsvlogger-0.9.1-py2.py3-none-any.whl (6.5 kB 查看哈希值)

上传时间 Python 2 Python 3

支持者