4.5. 覆盖日志文件的默认路径
如果修改默认容器,修改包含服务日志文件的路径,还必须修改默认日志文件路径。每个可组合服务都有一个 < service_name>LoggingSource
参数。例如,对于 nova-compute 服务,参数是 NovaComputeLoggingSource
。
流程
要覆盖 nova-compute 服务的默认路径,请将路径添加到配置文件中的
NovaComputeLoggingSource
参数:NovaComputeLoggingSource: tag: openstack.nova.compute file: /some/other/path/nova-compute.log
注意对于每个服务,定义
tag
和file
。默认情况下,其他值会被派生。您可以修改特定服务的格式。这会直接传递给 Rsyslog 配置。
LoggingDefaultFormat
参数的默认格式是 /(?<time>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}.\d+) (?<pid>\d+) (?<priority>\S+) (?<message>.*)$/ 使用以下语法:<service_name>LoggingSource: tag: <service_name>.tag path: <service_name>.path format: <service_name>.format
以下片段是更复杂的转换示例:
ServiceLoggingSource: tag: openstack.Service path: /var/log/containers/service/service.log format: multiline format_firstline: '/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}.\d{3} \d+ \S+ \S+ \[(req-\S+ \S+ \S+ \S+ \S+ \S+|-)\]/' format1: '/^(?<Timestamp>\S+ \S+) (?<Pid>\d+) (?<log_level>\S+) (?<python_module>\S+) (\[(req-(?<request_id>\S+) (?<user_id>\S+) (?<tenant_id>\S+) (?<domain_id>\S+) (?<user_domain>\S+) (?<project_domain>\S+)|-)\])? (?<Payload>.*)?$/'