I run my python script as a systemd service, it is defined in the following .service
file:
[Unit]
Description=MyService
After=multi-user.target
[Service]
Type=idle
ExecStart=/usr/bin/python3 /home/username/projects/website_notifier/run_service.py
[Install]
After=multi-user.target
In my run_service.py file I then log output using the logging module:
import logging
logging.basicConfig(filename=settings['log_file_name'], level=logging.INFO)
logging.info("Starting notifier service at " + str(datetime.utcnow()))
The issue is that this information is not being logged to my log file when I run I start my file through systemctl
Now, I know that generally systemd gets output to journalctl, I don't want this. I want to be able to access this log through another script that does not run with administrator priviliges.
How can I make this happen?
I've since switched to using Loguru for logging and it seems far more intuitive and useable.
Also, adding the following to .service
file makes sure the logging is not buffered and is real time:
[Service]
Environment=PYTHONUNBUFFERED=1