🌌
Size: a a a
楽
РС
logger.add(sink='file.log', rotation='00:00:00')После этого в полночь каждого дня начинает писаться новый log-файл, однако я не просто так упоминал про 8 процессов-worker'ов.
# для сжатия добавляется compression='zip'
import osСобсна, вопрос: Как их синхронизировать ротацию (создание новых файлов в заданное время) чтобы избежать дублирования лог-файлов для каждого процесса?
import sys
from datetime import timedelta
from glob import glob
from multiprocessing import Process
from time import sleep
from loguru import logger
def setup_logger() -> None:
format = ("<green>{time:YYYY-MM-DD HH:mm:ss.SSS!UTC}UTC+00</green> | "
"<red>PID={process: <8}</red> | "
"<level>{level: <8}</level> | "
"<cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> - <level>{message}</level>")
logger.remove()
logger.add(sink=sys.stderr, format=format)
logger.add(sink='logs/two_process.log', format=format, rotation=timedelta(seconds=2))
def remove_all_previous_logs():
files = glob('logs/*.log')
for file in files:
os.remove(file)
def task():
for i in range(15):
sleep(1)
logger.debug(f'another iteration {i}')
if __name__ == '__main__':
remove_all_previous_logs()
setup_logger()
logger.info("started")
process_count = 8
processes = [Process(target=task, ) for i in range(process_count)]
for process in processes:
process.start()
for process in processes:
process.join()
楽

楽
楽

楽

DB
ap
🌌
РС
enqueue=True. ap
a
a