Ubuntu 18, python3. Мы переносим старый проект из py2 / ubuntu 14. Мы продолжаем получать правильно окрашенные логи, если мы просто запустим: sudo python3 main.py
Но если мы запустим это как systemd и используем journalctl -f -u main -o cat
, мы просто получите белый текст, распечатайте.
Ниже приведен тестовый файл / процесс, который я пробовал, с тем же результатом:
test.py
import logging
import chromalog
chromalog.basicConfig(level=logging.DEBUG)
logger = logging.getLogger()
logging.debug("This is a debug message")
logging.info("This is an info message")
logging.warning("This is a warning message")
logging.error("This is an error message")
logging.critical("This is a critical message")
Если я запустил это как следует: sudo python3 test.py
Затем я получаю цветную печать.
Если я создаю службу /etc/systemd/system/test.service:
[Unit]
Description=test log
[Service]
ExecStart=/usr/bin/python3 /srv/test.py
[Install]
WantedBy=multi-user.target
Я тогда 2 терминала windows открыты, один для запуска службы и один работающий: journalctl -f -o cat
В моем основном окне termianl я запускаю: service test start
Я получу цветной отпечаток, как и ожидалось, но в моем journalctl Я ничего не получаю.
Я читал, что journalctl должен печатать свою раскраску. Я пытался не использовать chromalog и просто использовать: from system import journal
Но это печатает в главном окне терминала без окраски, а также journalctl.
Я что-то упускаю очевидное в отношении в py3 + ведение журнала Ubuntu + Systemd? Это часть проекта, который мы переносим из ubuntu14 py2.
Cheers