Ich versuche, einen Daemon-Dienst in Python mit Protokoll in Datei-Option mit Protokollierung zu erstellen. Wenn ich den Parameter pidfile dem Konstruktor daemon.DaemonContext hinzufüge, protokolliert der Logger keine Meldungen in der Datei logger.log. Aber wenn ich diesen Parameter entferne, funktioniert alles. läuft ohne Fehler. Kann jemand wissen, warum Pidfile-Parameter in daemon.DaemonContext Log-Nachrichten deaktivieren? und wie kann ich das lösen?Define pidfile in DaemonContext disable logger in python
Jede Hilfe wird geschätzt. Danke
import signal
import daemon
import lockfile
import logging
import logging.handlers
def run():
logger = logging.getLogger("DaemonLog")
logger.setLevel(logging.INFO)
handler = logging.FileHandler('logger.log')
handler.setFormatter(logging.Formatter("%(asctime)s - %(levelname)s - %(message)s"))
logger.addHandler(handler)
daemon_context = daemon.DaemonContext(
working_directory='/opt/myDaemon',
umask=0o002,
pidfile=lockfile.FileLock('/var/run/myDaemon.pid'),
files_preserve=[handler.stream]
)
daemon_context.signal_map = {
signal.SIGTERM: terminate_collector,
signal.SIGHUP: terminate_collector,
signal.SIGABRT: terminate_collector
}
with daemon_context as context:
while True:
logger.info("log")
func()
time.sleep(PARAM_SLEEP)
if __name__ == "__main__":
run()