瀏覽代碼

added logs flushing

Dimitri Korsch 5 年之前
父節點
當前提交
af7c3c9ff5
共有 1 個文件被更改,包括 9 次插入1 次删除
  1. 9 1
      cvfinetune/parser/base.py

+ 9 - 1
cvfinetune/parser/base.py

@@ -1,6 +1,7 @@
 import os
 import logging
 import platform
+import warnings
 
 
 from cvargparse import GPUParser, Arg, ArgFactory
@@ -24,7 +25,7 @@ class FineTuneParser(GPUParser):
 		handler0.setFormatter(logging.Formatter("<{hostname:^10s}>: " + fmt, style="{"))
 
 		filename = logfile if logfile is not None else f"{platform.node()}.log"
-		handler1 = logging.FileHandler(filename=filename, mode="w")
+		self._file_handler = handler1 = logging.FileHandler(filename=filename, mode="w")
 		handler1.setFormatter(logging.Formatter(fmt, style="{"))
 
 		logger = logging.getLogger()
@@ -33,6 +34,13 @@ class FineTuneParser(GPUParser):
 		logger.setLevel(getattr(logging, self.args.loglevel.upper(), logging.DEBUG))
 
 
+	def __del__(self):
+		try:
+			self._file_handler.flush()
+		except Exception as e:
+			warnings.warn("Could not flush logs to file: {}".format(e))
+
+
 	def __init__(self, *args, **kwargs):
 		super(FineTuneParser, self).__init__(*args, **kwargs)