diff --git a/aliyun/log/logger_hanlder.py b/aliyun/log/logger_hanlder.py index c83d8036..7fa9e2d3 100644 --- a/aliyun/log/logger_hanlder.py +++ b/aliyun/log/logger_hanlder.py @@ -21,6 +21,7 @@ import json import re +import os class LogFields(Enum): @@ -415,6 +416,17 @@ def __init__(self, end_point, access_key_id, access_key, project, log_store, top self.init_worker() + self.reg() + + + def reg(self): + if (hasattr(os, 'register_at_fork')): + os.register_at_fork( + after_in_child=self.__fork_after_in_child) + + def __fork_after_in_child(self): + self.init_worker() + def init_worker(self): self.worker = Thread(target=self._post) self.queue = Queue(self.queue_size)