Log Python Systemd output to log file
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 |
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 |
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 '18 at 23:55
freefallfreefall
141211
141211
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
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 |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
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
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
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 |
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 |
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 '18 at 18:18
Graham KingGraham King
2,76031619
2,76031619
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.
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