Версия:

Модуль log

Модуль log

Общие сведения

The Tarantool server puts all diagnostic messages in a log file specified by the log configuration parameter. Diagnostic messages may be either system-generated by the server’s internal code, or user-generated with the log.log_level_function_name function.

As explained in the description of log_format configuration setting, there are two possible formats for log entries:

  • „plain“ (the default), or
  • „json“ (with more detail and with JSON labels).

Here is what a log entry looks like after box.cfg{log_format='plain'}:

2017-10-16 11:36:01.508 [18081] main/101/interactive I> set 'log_format' configuration option to "plain"

Here is what a log entry looks like after box.cfg{log_format='json'}:

{"time": "2017-10-16T11:36:17.996-0600",
"level": "INFO",
"message": "set 'log_format' configuration option to \"json\"",
"pid": 18081,|
"cord_name": "main",
"fiber_id": 101,
"fiber_name": "interactive",
"file": "builtin\/box\/load_cfg.lua",
"line": 317}

Индекс

Ниже приведен перечень всех функций и элементов модуля log.

Имя Использование
log.error()
log.warn()
log.info()
log.verbose()
log.debug()
Write a user-generated message to a log file
log.logger_pid() Get the PID of a logger
log.rotate() Rotate a log file
log.error(message)
log.warn(message)
log.info(message)
log.verbose(message)
log.debug(message)

Output a user-generated message to the log file, given log_level_function_name = error or warn or info or verbose or debug.

As explained in the description of the configuration setting for log_level, there are seven levels of detail:

  • 1 – SYSERROR
  • 2 – ERROR – this corresponds to log.error(...)
  • 3 – CRITICAL
  • 4 – WARNING – this corresponds to log.warn(...)
  • 5 – INFO – this corresponds to log.info(...)
  • 6 – VERBOSE – this corresponds to log.verbose(...)
  • 7 – DEBUG – this corresponds to log.debug(...)

For example, if box.cfg.log_level is currently 5 (the default value), then log.error(...), log.warn(...) and log.info(...) messages will go to the log file. However, log.verbose(...) and log.debug(...) messages will not go to the log file, because they correspond to higher levels of detail.

Параметры:
  • message (string) –

    The actual output will be a line containing:

    • the current timestamp,
    • a module name,
    • “E“, „W“, „I“, „V“ or „D“ depending on log_level_function_name, and
    • message.

    Output will not occur if log_level_function_name is for a type greater than log_level.

    Messages may contain C-style format specifiers %d or %s, so log.error('...%d...%s', x, y) will work if x is a number and y is a string.

Возврат:

nil

log.logger_pid()
Возврат:PID of a logger
log.rotate()

Rotate the log.

Возврат:nil

Пример

$ tarantool
tarantool> box.cfg{log_level=3, log='tarantool.txt'}
tarantool> log = require('log')
tarantool> log.error('Error')
tarantool> log.info('Info %s', box.info.version)
tarantool> os.exit()
$ less tarantool.txt
2017-09-20 ... [68617] main/101/interactive C> version 1.7.5-31-ge939c6ea6
2017-09-20 ... [68617] main/101/interactive C> log level 3
2017-09-20 ... [68617] main/101/interactive [C]:-1 E> Error

The „Error“ line is visible in tarantool.txt preceded by the letter E.

The „Info“ line is not present because the log_level is 3.