Example Configuration File for nova
¶
This sample configuration file demonstrates how the OpenStack compute service (nova) might be configured.
# nova_sample.conf
[loggers]
keys = root, nova
[handlers]
keys = stderr, stdout, watchedfile, syslog, fluent, null
[formatters]
keys = context, default, fluent
[logger_root]
level = WARNING
handlers = null
[logger_nova]
level = INFO
handlers = stderr
qualname = nova
[logger_amqp]
level = WARNING
handlers = stderr
qualname = amqp
[logger_amqplib]
level = WARNING
handlers = stderr
qualname = amqplib
[logger_sqlalchemy]
level = WARNING
handlers = stderr
qualname = sqlalchemy
# "level = INFO" logs SQL queries.
# "level = DEBUG" logs SQL queries and results.
# "level = WARNING" logs neither. (Recommended for production systems.)
[logger_boto]
level = WARNING
handlers = stderr
qualname = boto
# NOTE(mikal): suds is used by the vmware driver, removing this will
# cause many extraneous log lines for their tempest runs. Refer to
# https://review.opendev.org/#/c/219225/ for details.
[logger_suds]
level = INFO
handlers = stderr
qualname = suds
[logger_eventletwsgi]
level = WARNING
handlers = stderr
qualname = eventlet.wsgi.server
[handler_stderr]
class = StreamHandler
args = (sys.stderr,)
formatter = context
[handler_stdout]
class = StreamHandler
args = (sys.stdout,)
formatter = context
[handler_watchedfile]
class = handlers.WatchedFileHandler
args = ('nova.log',)
formatter = context
[handler_syslog]
class = handlers.SysLogHandler
args = ('/dev/log', handlers.SysLogHandler.LOG_USER)
formatter = context
[handler_fluent]
class = fluent.handler.FluentHandler
args = ('openstack.nova', 'localhost', 24224)
formatter = fluent
[handler_null]
class = logging.NullHandler
formatter = default
args = ()
[formatter_context]
class = oslo_log.formatters.ContextFormatter
[formatter_default]
format = %(message)s
[formatter_fluent]
class = oslo_log.formatters.FluentFormatter
Two logger nodes are set up, root
and nova
.
[loggers]
keys = root, nova
Several handlers are created, to send messages to different outputs.
[handlers]
keys = stderr, stdout, watchedfile, syslog, fluent, null
And two formatters are created to be used based on whether the logging location will have OpenStack request context information available or not. A Fluentd formatter is also shown.
[formatters]
keys = context, default, fluent
The root
logger is configured to send messages to the null
handler, silencing most messages that are not part of the nova
application code namespace.
[logger_root]
level = WARNING
handlers = null
The nova
logger is configured to send messages marked as INFO
and higher level to the standard error stream.
[logger_nova]
level = INFO
handlers = stderr
qualname = nova
The amqp
and amqplib
loggers, used by the module that connects
the application to the message bus, are configured to emit warning
messages to the standard error stream.
[logger_amqp]
level = WARNING
handlers = stderr
qualname = amqp
[logger_amqplib]
level = WARNING
handlers = stderr
qualname = amqplib
The sqlalchemy
logger, used by the module that connects the
application to the database, is configured to emit warning messages to
the standard error stream.
[logger_sqlalchemy]
level = WARNING
handlers = stderr
qualname = sqlalchemy
# "level = INFO" logs SQL queries.
# "level = DEBUG" logs SQL queries and results.
# "level = WARNING" logs neither. (Recommended for production systems.)
Similarly, boto
, suds
, and eventlet.wsgi.server
are
configured to send warnings to the standard error stream.
[logger_boto]
level = WARNING
handlers = stderr
qualname = boto
# NOTE(mikal): suds is used by the vmware driver, removing this will
# cause many extraneous log lines for their tempest runs. Refer to
# https://review.opendev.org/#/c/219225/ for details.
[logger_suds]
level = INFO
handlers = stderr
qualname = suds
[logger_eventletwsgi]
level = WARNING
handlers = stderr
qualname = eventlet.wsgi.server
The stderr
handler, being used by most of the loggers above, is
configured to write to the standard error stream on the console.
[handler_stderr]
class = StreamHandler
args = (sys.stderr,)
formatter = context
The stderr
handler uses the context
formatter, which takes its
configuration settings from oslo.config
.
[formatter_context]
class = oslo_log.formatters.ContextFormatter
The stdout
and syslog
handlers are defined, but not used.
The fluent
handler is useful to send logs to fluentd
.
It is a part of fluent-logger-python and you can install it as following.
$ pip install fluent-logger
This handler is configured to use fluent
formatter.
[handler_fluent]
class = fluent.handler.FluentHandler
args = ('openstack.nova', 'localhost', 24224)
formatter = fluent
[formatter_fluent]
class = oslo_log.formatters.FluentFormatter