Skip to main content

Structured logging for Plone

Project description

ftw.structlog

This package implements structured request logging in Plone.

It does so by writing logfiles (one per instance) that contain one JSON entry per line for every request. That JSON entry contains all the information the Z2 log provides, and more, in structured key/value pairs.

Installation

  • Install ftw.structlog by adding it to the list of eggs in your buildout. Then run buildout and restart your instance:

[instance]
eggs +=
    ftw.structlog
  • Alternatively, add it as a dependency to your package’s setup.py.

Logged Information

Example entry:

{
  "bytes": 6875,
  "duration": 0.30268411636353,
  "host": "127.0.0.1",
  "method": "GET",
  "referer": "http:\/\/localhost:8080\/plone",
  "site": "plone",
  "status": 200,
  "timestamp": "2017-07-29T12:30:58.000750+02:00",
  "url": "http:\/\/localhost:8080\/plone\/my-page",
  "user": "john.doe",
  "user_agent": "Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/60.0.3112.113 Safari\/537.36"
}

The logged JSON entry contains the following data:

key

value

bytes

Size of response body in bytes (Content-Length)

duration

Time spent in ZPublisher to handle request (time between IPubStart and IPubSuccess / IPubFailure )

host

Host where the request originated from (respecting X-Forwarded-For)

method

HTTP request method

referer

Referer

site

Plone site ID

status

HTTP response status

timestamp

Time when request was received (non-naive local time in ISO 8601, in the server’s local timezone as determined by tzlocal)

url

URL of the request (including query string if present)

user

Username of the authenticated user, "Anonymous" otherwise

user_agent

User-Agent

Logfile Location

One logfile per Zope2 instance will be created, and its location and name will be derived from the instance’s eventlog path. If the instance’s eventlog path is var/log/instance2.log, the JSON logfile’s path will be var/log/instance2-json.log.

Because ftw.structlog derives its logfile name from the eventlog path, an eventlog must be configured in zope.conf, otherwise ftw.structlog will prevent the instance from starting.

Changelog

1.0.0 (2017-09-03)

  • Initial implementation [lgraf]

Project details


Download files

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

Source Distribution

ftw.structlog-1.0.0.tar.gz (16.6 kB view details)

Uploaded Source

File details

Details for the file ftw.structlog-1.0.0.tar.gz.

File metadata

File hashes

Hashes for ftw.structlog-1.0.0.tar.gz
Algorithm Hash digest
SHA256 3501ed4cd18881cf76b449996a3b4be69a2ff8c958a0628befe19b88612565b4
MD5 714e2dedb1e7a9c9919f00ee06168c54
BLAKE2b-256 b4e8a9e1e643452dc323946deff42d919f87ff4cf38762387032c8c10e5d1a93

See more details on using hashes here.

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