Skip to main content

Pyramid plugin for YAML logging configuration.

Project description

Pyramid Sawing

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

A Pyramid framework plugin for configurating logging via YAML. This uses the Python standard-library’s logging (initialized using logging.config.dictConfig).

Usage

Include the package in your project, either by adding to the INI configuration:

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

Or declarative via the configuration object:

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

You’ll be required to specify a logging configuration file at pyramid_sawing.file, which points to the file that contains your YAML logging configuration.

YAML Configuration

This configuration follows the standard-library’s logging.config dictionary schema

An example configuration might look like this:

###
# 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    : []

A typical gotcha in configuring this is to forget the ‘version’. Please make sure you include version: 1 in your configuration.

Additional Features

Transit Logging

This resembles the functionality you would find in pyramid_translogger except that this implementation is more configurable.

To enable this feature, add the following line to your configuraton/settings.

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

A template for configuring the transit logger would be something like:

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

This should give you the exact same output as pyramid_translogger.

License

This software is subject to the provisions of the GNU Affero General Public License Version 3.0 (AGPL). See LICENSE.txt for details. Copyright (c) 2015 Rice University

Change Log

1.1.2

  • Fix the transit logging tween to return the response coming from the handler rather than the one attached to the request object. [pumazi]

1.1.1

  • Fix the transit logging tween by returning the response, which caused secondary tweens and event subscribers to fail. [pumazi]

1.1.0

  • Add a transit (request) logging feature that mimics functionality found in pyramid_translogger. [pumazi]

1.0.0

  • Add a logging filter that allows for %(hostname)s be be used within log lines. [pumazi]

  • Logging from a YAML file. [pumazi]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

pyramid_sawing-1.1.2.zip (25.5 kB view details)

Uploaded Source

pyramid_sawing-1.1.2.tar.gz (18.3 kB view details)

Uploaded Source

pyramid_sawing-1.1.2.tar.bz2 (17.1 kB view details)

Uploaded Source

File details

Details for the file pyramid_sawing-1.1.2.zip.

File metadata

  • Download URL: pyramid_sawing-1.1.2.zip
  • Upload date:
  • Size: 25.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pyramid_sawing-1.1.2.zip
Algorithm Hash digest
SHA256 5b53016807a057a9a96e3a86b6519ab23db4f802623177d897ed7cef8c445bd0
MD5 dbc8b595614d2944217953fbd276f4d0
BLAKE2b-256 0790705b465bb240eb58252b5aa086ceb40270b576b3f01c2fb2c6ba896ca7f0

See more details on using hashes here.

Provenance

File details

Details for the file pyramid_sawing-1.1.2.tar.gz.

File metadata

File hashes

Hashes for pyramid_sawing-1.1.2.tar.gz
Algorithm Hash digest
SHA256 164bc0bded4fa9a488c14aa43a57af098567f7ff907f1e49d614f34278bbd8f3
MD5 ab92320884066ac1d39e2d76650938aa
BLAKE2b-256 68fa82a6c765e147612fa1f013c1e4cb8ff8c02211a1e56071793eb39d04e63f

See more details on using hashes here.

Provenance

File details

Details for the file pyramid_sawing-1.1.2.tar.bz2.

File metadata

File hashes

Hashes for pyramid_sawing-1.1.2.tar.bz2
Algorithm Hash digest
SHA256 4c3516012da970758cadc72a2a2cd407556b1e865ed7db2ab72e9e03c9168750
MD5 f7b72fb62f5698750eb18cb9c403b66f
BLAKE2b-256 4c1a74568cdad196840a62516d0993db79e2e4cae23c26b8fd49f95857a93d72

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page