Log analytics
Beemo provides the means to process your Beemo site’s Apache logs and generate a simple analytics site based on the site contents.
beemo logs # process Apache gz logs → CSV files
beemo analytics # generate HTML analytics site
Both subcommands read their defaults from BEEMO_CONFIG. Any setting can be overridden on the
command line — run with --help for details.
Log processing
Log processing is handled by the beemo logs command. It reads gzipped Apache logs, extracts the relevant fields, and writes them out as CSV files. These CSV files are the source data for the analytics site.
Analytics site generation
The beemo analytics command reads the CSV files generated by beemo logs and produces a
multi-page HTML site. It uses a Chameleon template to render the pages.
Usage
With beemo[logs] installed and logs/analytics sections in your config, you can process
your Apache logs with beemo logs and build your analytics site with beemo analytics with the
environment variable BEEMO_CONFIG set pointing at a valid config file. It will build your
analytics site into your configured output_dir. Alternatively, use the options which are
documented on the beemo logs and beemo analytics pages to specify various configuration on
the command line.
This can be served locally with e.g. python -m http.server -d analytics and viewed at e.g.
http://localhost:8000.
beemo analytics is incremental: year and month pages are skipped if their output file is newer
than all source CSVs. The summary page (last 30 days) always regenerates.
The analytics output is a multi-page site:
output_dir/
├── index.html ← last 30 days summary
└── 2026/
├── index.html ← full year
├── 03/
│ └── index.html ← March 2026
└── 04/
└── index.html ← April 2026
Template
The analytics template (analytics.pt) must be placed in your site’s templates_dir alongside
your other Chameleon templates.