diff --git a/config/logger.yaml b/config/logger.yaml new file mode 100644 index 0000000..0e168be --- /dev/null +++ b/config/logger.yaml @@ -0,0 +1,24 @@ +version: 1 +formatters: + simple: + format: '%(asctime)s:%(name)s:%(levelname)s:%(message)s' +handlers: + console: + class: logging.StreamHandler + level: DEBUG + formatter: simple + stream: ext://sys.stdout + file: + class: logging.FileHandler + level: INFO + filename: '/workspace/outputs/main.log' + mode: 'w' + formatter: simple +loggers: + Logger: + level: DEBUG + handlers: [console, file] + propagate: no +root: + level: DEBUG + handlers: [console] \ No newline at end of file diff --git a/src/federatedlearning/main.py b/src/federatedlearning/main.py index 2ab8015..c5b0bff 100644 --- a/src/federatedlearning/main.py +++ b/src/federatedlearning/main.py @@ -1,11 +1,12 @@ #!/usr/bin/env python import copy -import logging import math import os import pickle import time +from logging import getLogger +from logging.config import dictConfig import hydra import matplotlib @@ -15,6 +16,7 @@ import pandas as pd import torch import torch.nn as nn +import yaml from nptyping import Int, NDArray, Shape from omegaconf import DictConfig, OmegaConf from tqdm import tqdm @@ -40,12 +42,8 @@ def main(cfg: DictConfig) -> float: # noqa: C901 # Record the start time for run duration start_time: float = time.time() - logging.basicConfig( - level=logging.INFO, - format="%(levelname)s - %(asctime)s - %(message)s", - filename="/workspace/outputs/main.log", - ) - logger = logging.getLogger(__name__) + dictConfig(yaml.safe_load(open("/workspace/config/logger.yaml").read())) + logger = getLogger("Logger") # Setup paths and logging utilities mlflow.set_tracking_uri( @@ -403,9 +401,7 @@ def main(cfg: DictConfig) -> float: # noqa: C901 logger.info( "\n Total Run Time: {0:0.4f}".format(time.time() - start_time) ) - mlflow.log_artifact( - f"/workspace/outputs/{EXPERIMENT_ID}_{RUN_ID}_{cfg.mlflow.run_name}.log" - ) + mlflow.log_artifact("/workspace/outputs/main.log") return test_acc