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)

[...]

Reply via email to