Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
POSTECH-CVLab
GitHub Repository: POSTECH-CVLab/PyTorch-StudioGAN
Path: blob/master/src/utils/log.py
809 views
1
# PyTorch StudioGAN: https://github.com/POSTECH-CVLab/PyTorch-StudioGAN
2
# The MIT License (MIT)
3
# See license file or visit https://github.com/POSTECH-CVLab/PyTorch-StudioGAN for details
4
5
# src/utils/log.py
6
7
from os.path import dirname, exists, join
8
from datetime import datetime
9
import json
10
import os
11
import logging
12
13
14
def make_run_name(format, data_name, framework, phase):
15
return format.format(data_name=data_name,
16
framework=framework,
17
phase=phase,
18
timestamp=datetime.now().strftime("%Y_%m_%d_%H_%M_%S"))
19
20
21
def make_logger(save_dir, run_name, log_output):
22
if log_output is not None:
23
run_name = log_output.split('/')[-1].split('.')[0]
24
logger = logging.getLogger(run_name)
25
logger.propagate = False
26
log_filepath = log_output if log_output is not None else join(save_dir, "logs", run_name + ".log")
27
28
log_dir = dirname(log_filepath)
29
if not exists(log_dir):
30
os.makedirs(log_dir)
31
32
if not logger.handlers: # execute only if logger doesn't already exist
33
file_handler = logging.FileHandler(log_filepath, 'a', 'utf-8')
34
stream_handler = logging.StreamHandler(os.sys.stdout)
35
36
formatter = logging.Formatter('[%(levelname)s] %(asctime)s > %(message)s', datefmt="%Y-%m-%d %H:%M:%S")
37
38
file_handler.setFormatter(formatter)
39
stream_handler.setFormatter(formatter)
40
41
logger.addHandler(file_handler)
42
logger.addHandler(stream_handler)
43
logger.setLevel(logging.INFO)
44
return logger
45
46