# -*- coding: utf-8 -*- | |
import os | |
def syslog_file_match(output): | |
""" | |
Return patterns to be used in logstreamer file_match config params. | |
For example the function may return this dict: | |
{ | |
"/var/log": "kern\.log|auth\.log|syslog|mail\.log|mail\.err" | |
} | |
""" | |
file_match = {} | |
for name, config in output.get('file', {}).items(): | |
if not config.get('enabled') or config.get('skip_log_collector', False): | |
continue | |
logdir = os.path.dirname(name) | |
pattern = os.path.basename(name).replace('.', '\.') | |
if logdir in file_match: | |
file_match[logdir] = file_match[logdir] + '|' + pattern | |
else: | |
file_match[logdir] = pattern | |
return file_match |