ログを使用してファイルへのログ オプションを使用して、python でデーモン サービスを作成しようとしています。pidfile パラメーターを daemon.DaemonContext コンストラクターに追加すると、ロガーはメッセージを logger.log ファイルに記録しません。しかし、そのパラメーターを削除すると、すべてが機能します。エラーなしで実行されます。daemon.DaemonContext の pidfile パラメータがログメッセージを無効にする理由を誰でも知っていますか? どうすればそれを解決できますか?
どんな助けでも大歓迎です。ありがとう
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()