ArangoDB v2.8 reached End of Life (EOL) and is no longer supported.
This documentation is outdated. Please see the most recent version here: Try latest
Command-Line Options for Logging
There are two different kinds of logs. Human-readable logs and machine-readable logs. The human-readable logs are used to provide an administration with information about the server. The machine-readable logs are used to provide statistics about executed requests and timings about computation steps.
General Logging Options
Logfile
--log.file filename
This option allows the user to specify the name of a file to which information is logged. By default, if no log file is specified, the standard output is used. Note that if the file named by filename does not exist, it will be created. If the file cannot be created (e.g. due to missing file privileges), the server will refuse to start. If the specified file already exists, output is appended to that file.
Use +
to log to standard error. Use -
to log to standard output.
Use ""
to disable logging to file.
--log.tty filename
Be default, if started on a tty, the log output will also go to the ttyp.
Use ""
to disable.
Request
--log.requests-file filename
This option allows the user to specify the name of a file to which
requests are logged. By default, no log file is used and requests are
not logged. Note that if the file named by filename does not
exist, it will be created. If the file cannot be created (e.g. due to
missing file privileges), the server will refuse to start. If the specified
file already exists, output is appended to that file.
Use + to log to standard error. Use - to log to standard output.
Use ”” to disable request logging altogether.
The log format is
"http-request"
: static string indicating that an HTTP request was logged- client address: IP address of client
- HTTP method type, e.g.
GET
,POST
- HTTP version, e.g.
HTTP/1.1
- HTTP response code, e.g. 200
- request body length in bytes
- response body length in bytes
- server request processing time, containing the time span between fetching the first byte of the HTTP request and the start of the HTTP response
Human Readable Logging
Logfiles
Level
--log.level level
--log level
Allows the user to choose the level of information which is logged by the
server. The argument level is specified as a string and can be one of
the values listed below. Note that, fatal errors, that is, errors which
cause the server to terminate, are always logged irrespective of the log
level assigned by the user. The variant c log.level can be used in
configuration files, the variant c log for command line options.
fatal:
Logs errors which cause the server to terminate.
Fatal errors generally indicate some inconsistency with the manner in which
the server has been coded. Fatal errors may also indicate a problem with the
platform on which the server is running. Fatal errors always cause the
server to terminate. For example,
2010-09-20T07:32:12Z [4742] FATAL a http server has already been created
error:
Logs errors which the server has encountered.
These errors may not necessarily result in the termination of the
server. For example,
2010-09-17T13:10:22Z [13967] ERROR strange log level 'errors'\, going to 'warning'
warning:
Provides information on errors encountered by the server,
which are not necessarily detrimental to it’s continued operation.
For example,
2010-09-20T08:15:26Z [5533] WARNING got corrupted HTTP request 'POS?'
Note: The setting the log level to warning will also result in all errors
to be logged as well.
info:
Logs information about the status of the server.
For example,
2010-09-20T07:40:38Z [4998] INFO SimpleVOC ready for business
Note: The setting the log level to info will also result in all errors and
warnings to be logged as well.
debug:
Logs all errors, all warnings and debug information.
Debug log information is generally useful to find out the state of the
server in the case of an error. For example,
2010-09-17T13:02:53Z [13783] DEBUG opened port 7000 for any
Note: The setting the log level to debug will also result in all errors,
warnings and server status information to be logged as well.
trace:
As the name suggests, logs information which may be useful to trace
problems encountered with using the server.
For example,
2010-09-20T08:23:12Z [5687] TRACE trying to open port 8000
Note: The setting the log level to trace will also result in all errors,
warnings, status information, and debug information to be logged as well.
Local Time
--log.use-local-time
If specified, all dates and times in log messages will use the server’s
local time-zone. If not specified, all dates and times in log messages
will be printed in UTC / Zulu time. The date and time format used in logs
is always YYYY-MM-DD HH:MM:SS
, regardless of this setting. If UTC time
is used, a Z
will be appended to indicate Zulu time.
Line number
--log.line-number
Normally, if an human readable fatal, error, warning or info message is
logged, no information about the file and line number is provided. The file
and line number is only logged for debug and trace message. This option can
be use to always log these pieces of information.
Prefix
--log.prefix prefix
This option is used specify an prefix to logged text.
Thread
--log.thread
Whenever log output is generated, the process ID is written as part of the
log information. Setting this option appends the thread id of the calling
thread to the process id. For example,
2010-09-20T13:04:01Z [19355] INFO ready for business
when no thread is logged and
2010-09-20T13:04:17Z [19371-18446744072487317056] ready for business
when this command line option is set.
Source Filter
--log.source-filter arg
For debug and trace messages, only log those messages originated from the
C source file arg. The argument can be used multiple times.
Content Filter
--log.content-filter arg
Only log message containing the specified string arg.
Performance
--log.performance
If this option is set, performance-related info messages will be logged via
the regular logging mechanisms. These will consist of mostly timing and
debugging information for performance-critical operations.
Currently performance-related operations are logged as INFO messages.
Messages starting with prefix [action]
indicate that an instrumented
operation was started (note that its end won’t be logged). Messages with
prefix [timer]
will contain timing information for operations. Note that
no timing information will be logged for operations taking less time than
1 second. This is to ensure that sub-second operations do not pollute logs.
The contents of performance-related log messages enabled by this option
are subject to change in future versions of ArangoDB.
Machine Readable Logging
Application
--log.application name
Specifies the name of the application which should be logged if this item of
information is to be logged.
Facility
--log.facility name
If this option is set, then in addition to output being directed to the
standard output (or to a specified file, in the case that the command line
log.file option was set), log output is also sent to the system logging
facility. The arg is the system log facility to use. See syslog for
further details.
The value of arg depends on your syslog configuration. In general it
will be user. Fatal messages are mapped to crit, so if arg
is user, these messages will be logged as user.crit. Error
messages are mapped to err. Warnings are mapped to warn. Info
messages are mapped to notice. Debug messages are mapped to
info. Trace messages are mapped to debug.