On 14/02/2026 18:55, ft wrote:
Hello,
I have a Python script that writes messages to syslog.
The script works with the print and sleep commands. When I remove the
print and sleep commands, only the first two commands appear in
local5.log file.
Well I think the problem is in the fast repetition of openlog +
closelog. The messages may be buffered or discarded by some rate
limiting. If you remove syslog.closelog() from the LOG_E function and
put it at the end of the script, all messages are logged, because syslog
receive them in one connection.
Best regards
Miroslav Lachman
=====
#!/usr/bin/env python3.14
import syslog
import os
import sys
import time
FACILITY = syslog.LOG_LOCAL5
def _get_script_name():
return os.path.basename(sys.argv[0])
def LOG_E(message):
script_name = _get_script_name()
formatted_message = f"ERROR: {script_name} {message}"
syslog.openlog(
ident=script_name,
logoption=syslog.LOG_PID,
facility=FACILITY
)
syslog.syslog(syslog.LOG_INFO, formatted_message)
syslog.closelog()
LOG_E("test_e13aaa")
# print("test_e13")
# time.sleep(1)
[...]