Skip to main content

Functions required by the access-logs-local-driver

Project description

Load the content of gzipped Apache HTTP log files Exclude bots, scrapers, etc., select URLs matching the provided regex(es), and generate a CSV of the relevant log entries.

Take postprocessed logs and strip out multiple hits in sessions, and resolve URLs to the chosen URI_SCHEME (e.g. info:doi).

We strip out entries where the same (IP address * user agent) pair has accessed a URL within the last SESSION_TIMEOUT (e.g. half-hour)

Additionally, we convert the URLs to ISBNs and collate request data by date, outputting a CSV for ingest via the stats system.

Release Notes:

[0.2.0] - 2026-03-02

Added:
  • LogProcessor and Request include a match_url_params parameter, which will allow URL parameters to be included in the regex matches for measures_uri determination (Request.match_url).

  • LogProcessor and Request include a canonical_url_params parameter, which is used creates the Request.canonical_url attribute. This is returned by the instance to identify the work.

  • LogProcessor includes an allowed_codes parameter, which specifies the status codes are considered valid for request in the access logs.

  • LogProcessor includes an Boolean keep_trailing_slash parameter, which is set to False by default. If False , the trailing forward slashes will be stripped from the URL path.

Changed:
  • breaking | Request.url has been split into Request.match_url and Request.canonical_url

  • The logic requiring the creation of filter_groups to pass to LogProcessor has been replaced with passing measure_regexes and excluded_ips.

Removed:
  • process_download_logs functions have been removed

  • Request.url has been removed

[0.1.2] - 2026-02-13

Changed:
  • Allow the LogProcessor._parse_line regex match to fail with a warning.

[0.1.1] - 2026-01-28

Changed:
  • Fix up function types hints.

Added:
  • Allow customisable “successful status codes” to be set.

[0.1.0] - 2025-12-08

Changed:
  • LogStream replaced with LogProcessor, which requires open file-like objects as input.

Added:
  • Able to process different log formats.

[0.0.7] - 2024-01-05

Changed:
  • Deletion of the spiders filter in process_download_logs.py

[0.0.6] - 2023-08-13

Changed:
  • Refactored driver logic

  • breaking | Changed parameters for the Request.__init__() method
    • Removed re_match_dict parameter

    • Added timestamp and user_agent parameters

  • Changed Request.timestamp from type time to datetime

  • Changed LogStream to use the new Request.__init__()

  • Expanded range for LogStream.logfile_names logic to include files within 1 day of the search_date

  • LogStream.lines() yields Request objects, not str values

  • LogStream.filter_in_line_request() only yields one line per measure

[0.0.5] - 2023-07-03

Changed:
  • Added start_date and end_date for searching in the log files

  • Added the measure_uri to the result

[0.0.4] - 2023-07-31

Changed:
  • Update file structure and name of the driver

[0.0.3] - 2023-07-25

Changed:
  • Update requirements

  • Update using a pyproject.toml file as well as the new deployment structure

[0.0.2] - 2023-07-11

Added:
  • Unittests

Changed:
  • Moved the files out of the package and get the file’s data as parameters and return the filtered data.

  • renamed the plugin to access-logs-local

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

access_logs_local-0.2.0.tar.gz (11.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

access_logs_local-0.2.0-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

Details for the file access_logs_local-0.2.0.tar.gz.

File metadata

  • Download URL: access_logs_local-0.2.0.tar.gz
  • Upload date:
  • Size: 11.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.2

File hashes

Hashes for access_logs_local-0.2.0.tar.gz
Algorithm Hash digest
SHA256 ec5ea7fecbf99b6de3cb9d956d31d7dfb9ac45b1052c520d5145fb8bcfab1e4f
MD5 59335bbfd1db615a1f0a0007f8e1a779
BLAKE2b-256 ddf9aadb4db48ac232e624dbeccf82e2b74e2aa321aec570d4a45844e0eb0e03

See more details on using hashes here.

File details

Details for the file access_logs_local-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for access_logs_local-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 80ebac4540d052d0c86c526bb18d9d80c4dd56defa4feb9481efcf2fbfc1e923
MD5 ff84573933262e19e3a8a0b4cc956c36
BLAKE2b-256 ac370ee2c72cac47eecacf8daa5fb88237f22ab4508a0f3b8d092a6f39e8a856

See more details on using hashes here.

Supported by

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