Contents

Archive - Plugixa Activity Log

The live log is written on every request and read by every screen. It stays fast by staying small. The archive answers “how do I keep three years of history without carrying it around every day?”: events past a set age move to a table of their own and stay searchable.

The Archive tab in Settings, with the age at which events are archived, the archive’s own retention, where the archive is kept and the archive status

Pro feature. The archive is part of Plugixa Activity Log Pro. See the Free vs Pro matrix.

The settings

Settings -> Archive.

Setting What it does
Archive events older than (days) Events past this age are moved. 0, the default, turns archiving off.
Keep archived events for (days) The archive’s own retention. 0 keeps archived events forever.
Where to keep the archive In this site’s database, or on another MySQL or MariaDB server.

Where the archive lives

In this site’s database puts the archive in a separate table, plugixaactivitylog_events_archive with your table prefix, beside the live one. Nothing to configure, and it already takes the weight off the live log.

On another MySQL or MariaDB server moves the history off the site’s database entirely. It asks for:

Field Notes
Database host Host name or address, optionally with :port
Database name The database to use
Database user and Password An account that may create and write a table there
Table prefix The table is created as the prefix followed by plugixaactivitylog_events_archive
Connect over TLS Encrypts the connection

Test connection connects with the values on screen, saved or not, creates the archive table if it is missing and says what happened. Use it before saving.

The password is never sent back to the browser. The form shows •••• and its last four characters; leave that untouched to keep the saved password. A change to the connection is recorded in the log (event 9402).

Copy, confirm, then delete

An archiver that deletes first and copies second loses events the day the network drops. This one cannot, because of the order it works in. Once a day, and on Archive now, it takes the oldest live events past the age limit, 500 at a time, and:

  1. copies them into the archive, where they keep their original ids;
  2. asks the archive which of those ids it now holds;
  3. deletes exactly those from the live log.

An event is therefore never in neither place. A run interrupted between steps leaves some events in both, and the next run finishes the job without making duplicates.

A run stops after about 15 seconds and books a follow-up a minute later, so a large backlog drains in short steps without holding up the site.

When the archive cannot be reached, nothing is deleted. The log records Archiving failed with the server’s reason (event 9401), and the events wait in the live log for the next run. A successful run records how many events were moved (event 9400).

Reading the archive

The log has a Live / Archive toggle in its toolbar.

The activity log switched to Archive, showing archived events with the same filters and columns as the live log

Filters, search, paging and the event inspector work the same on both sides. You are reading one or the other, not both at once: an investigation that spans the archive age means looking in both.

Exports and reports read the live log. To get archived events into a file, keep them live for longer.

Archive retention

Keep archived events for (days) is the only thing that ever removes an archived event. Set it to the length of history you are obliged, or want, to keep. At 0 the archive grows forever, which on an external server may be exactly the intention.

How it interacts with Retention

This is the setting pair people get wrong.

Retention applies to the live log only. It deletes; the archive moves. If both are set, whichever age comes first wins.

So if Retention deletes events at 20 days and the archive takes events at 30 days, nothing is ever old enough to archive. Retention removed it ten days earlier. The Archive tab warns about exactly that combination.

The working arrangement:

Setting Value
Retention, Keep events for 0, or longer than the archive age
Archive events older than How long events stay live, for example 30
Keep archived events for How long history is kept in total, or 0

Let the archive move events out of the live log, and let the archive’s own retention bound the history.

The status card

Archive status shows how many events the archive holds, the span from the oldest to the newest, and when the last run was. It describes the archive as saved, so save your changes before pressing Archive now.

Troubleshooting

Symptom Usual cause
Nothing is ever archived The age is 0, or Retention deletes events first. The tab shows a warning for the second.
Events are in both the live log and the archive A run was interrupted. The next run finishes it.
Event 9401 The archive could not be reached. Nothing was deleted. The message has the reason.
The test connection fails Host, port, credentials or TLS. The message is the database server’s own.
The archive side of the log shows an error The external server is unreachable. The live log is unaffected.
An export misses old events Exports and reports read the live log.
A large backlog moves slowly By design: short runs, a minute apart. It needs WP-Cron running.
The password field shows dots It is masked. Leave it to keep the saved one.

What to do next

Quick Links