Log Python Systemd output to log file
up vote
1
down vote
favorite
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?
python logging systemd
add a comment |
up vote
1
down vote
favorite
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?
python logging systemd
add a comment |
up vote
1
down vote
favorite
up vote
1
down vote
favorite
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?
python logging systemd
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?
python logging systemd
python logging systemd
asked Nov 21 at 23:55
freefall
136211
136211
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
First check that your service is running at all: systemctl status MyService
should show you an errors.
After
goes in [Unit]
section, not in [Install]
.
Once I fixed that your script worked for me. Other things to check:
- Is the log file path an absolute path?
- Does the user starting the service have permissions to write there?
I would recommend just logging to stdout, to the journal, so that you don't have to worry about rotating the log file, how much space it takes, etc. Also journalctl
is really nice for querying logs. You should be able to access the journal as non-root, either as same user as the script, or by being in group systemd-journal
.
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
First check that your service is running at all: systemctl status MyService
should show you an errors.
After
goes in [Unit]
section, not in [Install]
.
Once I fixed that your script worked for me. Other things to check:
- Is the log file path an absolute path?
- Does the user starting the service have permissions to write there?
I would recommend just logging to stdout, to the journal, so that you don't have to worry about rotating the log file, how much space it takes, etc. Also journalctl
is really nice for querying logs. You should be able to access the journal as non-root, either as same user as the script, or by being in group systemd-journal
.
add a comment |
up vote
0
down vote
First check that your service is running at all: systemctl status MyService
should show you an errors.
After
goes in [Unit]
section, not in [Install]
.
Once I fixed that your script worked for me. Other things to check:
- Is the log file path an absolute path?
- Does the user starting the service have permissions to write there?
I would recommend just logging to stdout, to the journal, so that you don't have to worry about rotating the log file, how much space it takes, etc. Also journalctl
is really nice for querying logs. You should be able to access the journal as non-root, either as same user as the script, or by being in group systemd-journal
.
add a comment |
up vote
0
down vote
up vote
0
down vote
First check that your service is running at all: systemctl status MyService
should show you an errors.
After
goes in [Unit]
section, not in [Install]
.
Once I fixed that your script worked for me. Other things to check:
- Is the log file path an absolute path?
- Does the user starting the service have permissions to write there?
I would recommend just logging to stdout, to the journal, so that you don't have to worry about rotating the log file, how much space it takes, etc. Also journalctl
is really nice for querying logs. You should be able to access the journal as non-root, either as same user as the script, or by being in group systemd-journal
.
First check that your service is running at all: systemctl status MyService
should show you an errors.
After
goes in [Unit]
section, not in [Install]
.
Once I fixed that your script worked for me. Other things to check:
- Is the log file path an absolute path?
- Does the user starting the service have permissions to write there?
I would recommend just logging to stdout, to the journal, so that you don't have to worry about rotating the log file, how much space it takes, etc. Also journalctl
is really nice for querying logs. You should be able to access the journal as non-root, either as same user as the script, or by being in group systemd-journal
.
answered Nov 30 at 18:18
Graham King
2,73531619
2,73531619
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53422081%2flog-python-systemd-output-to-log-file%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown