Apache::TS::Config::Records(3) Manage the Apache Traffic Server records.config file


use Apache::TS::Config::Records;
my $r = new Apache::TS::Config::Records(file => "/tmp/records.config");
$r->set(conf => "proxy.config.log.extended_log_enabled",
val => "123");
$r->write(file => "/tmp/records.config.new");


This module implements a convenient interface to read, modify and save the records.config file as used by Apache Traffic Server.

Instantiating a new Config::Records class, with a file provided, will automatically load that configuration. Don't call the load() method explicitly in this case.

API Methods

The following are methods in the Records class.
Instantiate a new object. The file name is optionally provided, and if present that file is immediately loaded (see the load() method below). Example:

  my $r = new Apache::TS::Config::Records(file => $fname);
Explicitly load a configuration file, merging the items with any existing values. This is useful to for example merge multiple configuration into one single structure
Get an existing configuration line. This is useful for detecting that a config exists or not, for example. The return value is an anonymous array like

  [<line string>, [value split into 4 fields, flag if changed]

You probably shouldn't modify this array.

Modify one configuration value, with the provided value. Both the conf name and the value are required. Example:

  $r->set(conf => "proxy.config.exec_thread.autoconfig",
          val => "0");

conf is short for ``config'', val is short for ``value'', and all are acceptable.

Remove a specified configuration, the mandatory option is conf (or ``config''). Example:

  $r->remove(conf => "proxy.config.exec_thread.autoconfig");
Append a string to the ``end'' of the finished configuration file. We will assure that no duplicated configurations are added. The input is a single line, as per the normal records.config syntax. The purpose of this is to add new sections to the configuration, with appropriate comments etc. Example:

  $r->append(line => "");
  $r->append(line => "# My local stuff");
  $r->set(conf => "proxy.config.dns.dedicated_thread",
          val => "1");
Write the new configuration file to STDOUT, or a filename if provided. Example:

  $r->write(file => "/etc/trafficserver/records.config");