Logs
Each Tarantool instance logs important events to its own log file. For
instances started with tt, the log location is defined by the
log_dir parameter in the tt configuration. By default,
it's /var/log/tarantool in the tt system mode,
and the var/log subdirectory of the tt working directory in the
local mode. In the specified location, tt creates
separate directories for each instance's logs.
To check how logging works, write something to the log using the log module:
$ tt connect application• Connecting to the instance...• Connected to applicationapplication> require('log').info("Hello for the manual readers")---...
Then check the logs:
$ tail instances.enabled/application/var/log/instance001/tt.log2024-04-09 17:34:29.489 [49502] main/106/gc I> wal/engine cleanup is resumed2024-04-09 17:34:29.489 [49502] main/104/interactive/box.load_cfg I> set 'instance_name' configuration option to "instance001"2024-04-09 17:34:29.489 [49502] main/104/interactive/box.load_cfg I> set 'custom_proc_title' configuration option to "tarantool - instance001"2024-04-09 17:34:29.489 [49502] main/104/interactive/box.load_cfg I> set 'log_nonblock' configuration option to false2024-04-09 17:34:29.489 [49502] main/104/interactive/box.load_cfg I> set 'replicaset_name' configuration option to "replicaset001"2024-04-09 17:34:29.489 [49502] main/104/interactive/box.load_cfg I> set 'listen' configuration option to [{"uri":"127.0.0.1:3301"}]2024-04-09 17:34:29.489 [49502] main/107/checkpoint_daemon I> scheduled next checkpoint for Tue Apr 9 19:08:04 20242024-04-09 17:34:29.489 [49502] main/104/interactive/box.load_cfg I> set 'metrics' configuration option to {"labels":{"alias":"instance001"},"include":["all"],"exclude":}2024-04-09 17:34:29.489 [49502] main I> entering the event loop2024-04-09 17:34:38.905 [49502] main/116/console/unix/:/tarantool I> Hello for the manual readers
When logging to a file, the system
administrator must ensure logs are rotated timely and do not take up all
the available disk space. The recommended way to prevent log files from
growing infinitely is using an external log rotation program, for
example, logrotate, which is pre-installed on most mainstream Linux
distributions.
A Tarantool log rotation configuration for logrotate can look like
this:
# /var/log/tarantool/<env>/<app>/<instance>/*.log/var/log/tarantool/*/*/*/*.log {dailysize 512kmissingokrotate 10compressdelaycompresssharedscripts # Run tt logrotate only once after all logs are rotated.postrotate/usr/bin/tt -S logrotateendscript}
In this configuration, tt logrotate is called after each
log rotation to reopen the instance log files after they are moved by
the logrotate program.
There is also the built-in function log.rotate(), which you can call on an instance to reopen its log file after rotation.
Tarantool can write its logs to a log file, to syslog, or to a
specified program through a pipe. For example, to send logs to syslog,
specify the log.to parameter as
follows:
log:to: syslogsyslog:server: '127.0.0.1:514'