У меня есть это в моем / etc /rsyslog.conf
:[12200 impression Затем у меня есть следующий сценарий Python ( test.py
):
import logging
import logging.handlers
logger = logging.getLogger('pxet.foo')
logger.addHandler(logging.handlers.SysLogHandler(address='/run/systemd/journal/syslog', facility='local1'))
logger.handlers[0].setLevel(logging.DEBUG)
logger.setLevel(logging.DEBUG)
logger.debug('test cockroach is a bug')
Если я сделаю следующее:
rm -rf /path/to/my/log
systemctl restart rsyslog
python test.py
Я не получу сообщение журнала. Однако:
mkdir -p /path/to/my/log
python test.py
И все это работает.
Могу ли я заставить rsyslog
создавать каталоги, если они не существуют, или мне придется делать это самому?
В документации ( http://www.rsyslog.com/doc/v8-stable/configuration/action/index.html#omfile-specific-configuration-statements ) говорится, что В rsyslog есть устаревшая опция конфигурации $ CreateDirs
, позволяющая управлять тем, создавать ли каталоги по мере необходимости. (Существует вариант с аналогичным названием CreateDirs
для следующего формата конфигурации, но в вашем примере используется устаревший формат.) Поэтому попробуйте строку:
$ CreateDirs на
непосредственно перед вашим
local1 . *? local1DynFile; строка local1LogFormat
.