Skip to content

Commit

Permalink
update exp_logging to use new logger
Browse files Browse the repository at this point in the history
Signed-off-by: Jason <[email protected]>
  • Loading branch information
blisc committed Jan 29, 2020
1 parent d4791b9 commit 3bb0cdc
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 29 deletions.
59 changes: 30 additions & 29 deletions nemo/utils/exp_logging.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,37 +4,38 @@
import subprocess
import sys
import time
import warnings
from shutil import copyfile

import nemo

from nemo.utils.decorators import deprecated


@deprecated(version=0.11, explanation="Please use nemo.logging instead")
def get_logger(unused):
warnings.warn("This function will be deprecated in the future. You " "can just use nemo.logging instead")
return nemo.logging


class ContextFilter(logging.Filter):
"""
This is a filter which injects contextual information into the log.
Use it when we want to inject worker number into the log message.
# class ContextFilter(logging.Filter):
# """
# This is a filter which injects contextual information into the log.
# Use it when we want to inject worker number into the log message.

Usage:
logger = get_logger(name)
tmp = logging.Formatter(
'WORKER %(local_rank)s: %(asctime)s - %(levelname)s - %(message)s')
logger.addFilter(ContextFilter(self.local_rank))
# Usage:
# logger = get_logger(name)
# tmp = logging.Formatter(
# 'WORKER %(local_rank)s: %(asctime)s - %(levelname)s - %(message)s')
# logger.addFilter(ContextFilter(self.local_rank))

"""
# """

def __init__(self, local_rank):
super().__init__()
self.local_rank = local_rank
# def __init__(self, local_rank):
# super().__init__()
# self.local_rank = local_rank

def filter(self, record):
record.local_rank = self.local_rank
return True
# def filter(self, record):
# record.local_rank = self.local_rank
# return True


class ExpManager:
Expand Down Expand Up @@ -155,21 +156,21 @@ def __init__(

def create_logger(self, level=logging.INFO, log_file=True):
logger = nemo.logging
tmp = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
# tmp = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')

if self.global_rank == 0:
logger.setLevel(level)
ch = logging.StreamHandler()
ch.setLevel(level)
ch.setFormatter(tmp)
logger.addHandler(ch)
# if self.global_rank == 0:
# logger.setLevel(level)
# ch = logging.StreamHandler()
# ch.setLevel(level)
# ch.setFormatter(tmp)
# logger.addHandler(ch)

if log_file:
self.log_file = f'{self.work_dir}/log_globalrank-{self.global_rank}_' f'localrank-{self.local_rank}.txt'
fh = logging.FileHandler(self.log_file)
fh.setLevel(level)
fh.setFormatter(tmp)
logger.addHandler(fh)
logger.add_file_handler(self.log_file)
# fh = logging.FileHandler(self.log_file)
# fh.setLevel(level)
# fh.setFormatter(tmp)
self.logger = logger
return logger

Expand Down
10 changes: 10 additions & 0 deletions nemo/utils/nemo_logging.py
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,16 @@ def reset_stream_handler(self):
self.remove_stream_handlers()
self.add_stream_handlers()

def add_file_handler(self, log_file):
if self._logger is None:
raise RuntimeError("Impossible to set handlers if the Logger is not predefined")

self._handlers["file"] = _logging.FileHandler(log_file)

formatter = BaseNeMoFormatter
self._handlers["file"].setFormatter(formatter())
self._logger.addHandler(self._handlers["file"])

def getEffectiveLevel(self):
"""Return how much logging output will be produced."""
if self._logger is not None:
Expand Down

0 comments on commit 3bb0cdc

Please sign in to comment.