跳转到主要内容

Pyramid插件用于YAML日志配置。

项目描述

Pyramid Sawing

https://travis-ci.org/Connexions/pyramid_sawing.svg https://badge.fury.io/py/pyramid_sawing.svg

一个用于通过YAML配置日志的Pyramid框架插件。这使用Python标准库的logging(使用logging.config.dictConfig初始化)。

使用方法

将包包含到您的项目中,可以通过添加到INI配置

pyramid.includes = pyramid_sawing
pyramid_sawing.file = my-logging-config.yaml

或通过配置对象声明性定义

config.include('pyramid_sawing')
assert 'pyramid_sawing.file' in config.registry.settings

您需要在pyramid_sawing.file中指定一个日志配置文件,它指向包含您的YAML日志配置的文件。

YAML配置

此配置遵循标准库的logging.config字典模式

一个示例配置可能看起来像这样

###
# logging configuration
###
version: 1

formatters:
  generic:
    format    : '%(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s'
  papertrail:
    format    : '%(asctime)s %(hostname)s my_project %(message)s'
    datefmt   : '%Y-%m-%dT%H:%M:%S'
filters:
  context:
    ()        : pyramid_sawing.filters.ContextFilter
handlers:
  console:
    class     : logging.StreamHandler
    level     : NOTSET
    formatter : generic
    stream    : 'ext://sys.stdout'
  syslog:
    class     : logging.handlers.SysLogHandler
    level     : DEBUG
    formatter : papertrail
    filters   : [context]
    address   : ['<host>.papertrailapp.com', 11111]
loggers:
  my_project:
    level     : INFO
    handlers  : [console, syslog]
    propagate : 0
root:
  level       : NOTSET
  handlers    : []

在配置此插件时一个典型的陷阱是忘记指定‘版本’。请确保在配置中包含version: 1

其他特性

传输日志

这与您在pyramid_translogger中会发现的功能相似,但此实现更可配置。

要启用此功能,请将以下行添加到您的配置/设置中。

pyramid_sawing.transit_logging.enabled? = yes
# Optional...
# The default logger_name is `transit_logger`
pyramid_sawing.transit_logging.logger_name = lumberjack

配置传输日志器的模板可能如下所示

formatters:
  apache_style:
    # filters : [environ]
    format    : '%(REMOTE_ADDR)s - %(REMOTE_USER)s [%(asctime)s] "%(REQUEST_METHOD)s %(REQUEST_URI)s %(HTTP_VERSION)s" %(status)s %(bytes)s "%(HTTP_REFERER)s" "%(HTTP_USER_AGENT)s"'
    datefmt   : '%d/%b/%Y:%H:%M:%S'
filters:
  environ:
    ()        : pyramid_sawing.filters.EnvironFilter
handlers:
  console:
    class     : logging.StreamHandler
    formatter : apache_style
    filters   : [environ]
    stream    : 'ext://sys.stdout'
loggers:
  transit_logger:
    handlers  : [console]
    propagate : 0

这将为您提供与pyramid_translogger完全相同的输出。

许可证

本软件受GNU Affero通用公共许可证第3.0版(AGPL)的约束。详情请见LICENSE.txt。版权所有(c)2015 Rice University

变更日志

1.1.3

  • 调整传输日志中间件以设置和返回请求对象的响应属性。

  • 修复Python3兼容性测试。

1.1.2

  • 修复传输日志中间件,使其返回来自处理器的响应,而不是附加到请求对象的响应。[pumazi]

1.1.1

  • 通过返回响应修复传输日志中间件,这导致了次要中间件和事件订阅者失败。[pumazi]

1.1.0

  • 添加一个模拟pyramid_translogger功能的传输(请求)日志功能。[pumazi]

1.0.0

  • 添加一个日志过滤器,允许在日志行中使用%(hostname)s。[pumazi]

  • 从YAML文件进行日志记录。[pumazi]

项目详情


下载文件

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

源分发

本发布版本没有可用的源分发文件。请参阅生成分发存档的教程

构建分发

pyramid_sawing-1.1.3-py3-none-any.whl (20.0 kB 查看哈希值)

上传时间 Python 3

pyramid_sawing-1.1.3-py2-none-any.whl (10.7 kB 查看哈希值)

上传时间 Python 2

支持者

AWSAWS 云计算和安全赞助商 DatadogDatadog 监控 FastlyFastly CDN GoogleGoogle 下载分析 MicrosoftMicrosoft PSF 赞助商 PingdomPingdom 监控 SentrySentry 错误记录 StatusPageStatusPage 状态页面