Минимальный рабочий пример приведен ниже:
Код: Выделить всё
import logging
from dask.distributed import LocalCluster as Cluster
logfile_name='test.log'
logger=logging.getLogger(__name__)
logger.setLevel('DEBUG')
log_format=logging.Formatter(
'%(asctime)s %(levelname)s: %(message)s',
datefmt='%Y-%m-%d %H:%M:%S',
)
console_handler=logging.StreamHandler()
console_handler.setLevel('DEBUG')
console_handler.setFormatter(
log_format)
file_handler=logging.FileHandler(
logfile_name, mode='w')
file_handler.setLevel('DEBUG')
file_handler.setFormatter(log_format)
logger.addHandler(file_handler)
logger.addHandler(console_handler)
if __name__=='__main__':
logger.info('First log message')
cluster=Cluster(
name='test', n_workers=1,
threads_per_worker=1, memory_limit='1GiB',
dashboard_address=':8000',
)
logger.info('Second log message')
logger.info('Third log message')
logger.info('Fourth log message')
logger.info('Fifth log message')
cluster.close()
logging.shutdown()
Код: Выделить всё
2024-09-22 15:28:30 INFO: First log message
2024-09-22 15:28:31 INFO: Second log message
2024-09-22 15:28:31 INFO: Third log message
2024-09-22 15:28:31 INFO: Fourth log message
2024-09-22 15:28:31 INFO: Fifth log message
Код: Выделить всё
\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\002024-09-22 15:41:46 INFO: Second log message
2024-09-22 15:41:46 INFO: Third log message
2024-09-22 15:41:46 INFO: Fourth log message
2024-09-22 15:41:46 INFO: Fifth log message
Покопавшись, я обнаружил, что если я удалю код кластера Dask, все будет в порядке. Странно то, что если я изменю режим на append в FileHandler, проблема исчезнет без удаления инициализации кластера Dask.
Как решить эту проблему, не удаляя код Dask и не меняя режим открытия файла?
Подробнее здесь: https://stackoverflow.com/questions/790 ... -with-dask