---
name: "aslmanager"
section: "8"
platform: "macos"
package: "syslog"
version: "406"
release: "macOS 26.5"
platforms: ["macos"]
url: "https://new.carta.tech/aslmanager"
---

# aslmanager(8)

Apple System Log data life-cycle manager

## NAME

**aslmanager** – Apple System Log data life-cycle manager

## SYNOPSIS

**aslmanager** \[**-s** *store\_dir*\] \[**-a** \[*archive\_dir*\]\] \[**-ttl** *days*\] \[**-store\_ttl** *days*\] \[**-module\_ttl** *days*\] \[**-size** *max\_size*\] \[**-asldb**\] \[**-module** \[*name*\]\] \[**-checkpoint**\] \[**-d** \[level\]\] \[**-dd** \[level\]\]

## DESCRIPTION

**aslmanager** manages rotated files and ASL data written by the **syslogd** server. It is started automatically at various times by **syslogd**. It may also be invoked from the command line by the superuser (root). It manages the life-cycle of data in the ASL database, rotated log files, and ASL directory data stores. Configuration information for **aslmanager** comes from the /etc/asl.conf configuration file, any ASL output module configuration files in the /etc/asl directory, and from command-line options that may be specified to override some settings found in the configuration files. In normal operation, it first checks the ASL database in /var/log/asl, then it checks the files and directories specified by /etc/asl.conf and each ASL output module.

If the **-asldb** flag is specified, then only the ASL database will be processed.

If the **-module** flag is specified, then the ASL database will not be processed. All ASL output modules, or a single module if *name* is specified, will be processed.

If **-checkpoint** is specified, then **aslmanager** will signal **syslogd** to checkpoint files for all modules, or for a single named module, before processing.

The **-d** flag causes **aslmanager** to print debug messages tracing it's actions as they are performed. An integer value (1, 2, or 3) may follow the  **-d** flag. Higher values cause more fine-grained messages to be printed. The default value is 1. The  **-dd** flag directs **aslmanager** to do a “dry run”. Debug messages are printed as with **-d**, but no actions are actually performed. An optional debug level may follow the **-dd** flag.

### ASL DATABASE MANAGEMENT

**aslmanager** scans the ASL database in /var/log/asl, or some other path specified by the setting of the “store\_path” parameter in asl.conf, or by the path supplied following the **-s** flag. Data files that are older than the time-to-live for the database are either archived or removed. Files that contain messages with explicit expire times are removed or archived monthly after all their contents expire. The default 7 day time-to-live value may be overridden by the setting of the “store\_ttl” parameter in asl.conf or by supplying a value following the **-store\_ttl** flag or the **-ttl** flag (which overrides the time-to-live for both the ASL database and for all ASL modules). A time-to-live value of zero allows files to remain in the store with no time limit.

A maximum size for the entire database is provided by the setting of the “max\_store\_size” parameter in asl.conf, or as a value following the **-size** flag. This will cause **aslmanager** to archive (if enabled) and remove files to keep the database size below the specified limit. The default value is 150000000 bytes. A value of zero means the size is unlimited. An unlimited size specification should be used with great caution, since a runaway process could quickly fill all available disk space. Files are removed in order starting from oldest to newest. Files with the same date are removed in standard lexicographic sort order by file name.

Files are either removed entirely or copied to an archive directory. If the **-a** flag is specified with no argument, files are copied to the /var/log/asl.archive directory. An alternate directory path may be specified following the **-a** flag. The archive parameter setting in asl.conf enables or disables archiving. The archive parameter requires a value of "1" to enable archiving, or a value of "0" to disable it. An option archive directory path may follow the "0" or "1".

### ASL OUTPUT MODULE MANAGEMENT

For each ASL output module, or a single module specified as an argument following **-module**, **aslmanager** first locates all checkpoint files produced by **syslogd** for that module. **aslmanager** checks all ASL directory data stores and all rotated log files - those with a “rotate” option in the module's configuration rules. Checkpoint files are renamed if necessary to conform to the naming style specified for the file by a “style” option in the module's configuration file. **aslmanager** will compress the file if directed by a “compress” option, and it will move the file to a destination directory if a “dest” option is specified for the file. Following this, **aslmanager** will delete expired files. The time-to-live for files is 7 days by default, but may be specified using the “ttl” option for the file in the module's configuration rules. If **-module\_ttl** or **-ttl** are specified command line, then value specified as an argument is used as a time-to-live instead. **-module\_ttl** specifies time-to-live for module processing. **-ttl** specifies time-to-live for both the ASL database and for modules.

Finally, if the “all\_max” option is specified for the output file, **aslmanager** checks the total size of all the rotated versions, and will delete them, (oldest first) to limit the total size as specified by “all\_max”. When processing ASL directory data stores, **aslmanager** will similarly delete data files after the expiry of their time-to-live, and will delete data files (oldest first) to limit the total size as specified by “all\_max”.

## SEE ALSO

[syslogd(8)](/syslogd/8.md), [syslog(1)](/syslog/1.md), [asl(3)](/asl/3.md), [asl.conf(5)](/asl.conf/5.md), [syslog(3)](/syslog/3.md).

## HISTORY

The **aslmanager** utility appeared in Mac OS X 10.6. Support for log file and ASL directory life-cycle management was added in OS X 10.9.
