logging: Reduce create_logger to new log_to_file.

The name `create_logger` suggests something much bigger than what this
function actually does -- the logger doesn't any more or less exist
after the function is called than before.  Its one real function is to
send logs to a specific file.

So, pull out that logic to an appropriately-named function just for
it.  We already use `logging.getLogger` in a number of places to
simply get a logger by name, and the old `create_logger` callsites can
do the same.
This commit is contained in:
Greg Price
2017-12-12 16:45:57 -08:00
parent 1c810baaef
commit b830b446f1
9 changed files with 40 additions and 39 deletions

View File

@@ -185,24 +185,12 @@ class ZulipFormatter(logging.Formatter):
setattr(record, 'zulip_decorated', True)
return super().format(record)
def create_logger(name: str,
log_file: str,
log_format: str="%(asctime)s%(levelname)-8s%(message)s") -> Logger:
"""Creates a named logger for use in logging content to a certain
file. A few notes:
* "name" is used in determining what gets logged to which files;
see "loggers" in zproject/settings.py for details. Don't use `""`
-- that's the root logger.
* "log_file" should be declared in zproject/settings.py in ZULIP_PATHS.
"""
logger = logging.getLogger(name)
if log_file:
formatter = logging.Formatter(log_format)
file_handler = logging.FileHandler(log_file)
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
return logger
def log_to_file(logger: Logger,
filename: str,
log_format: str="%(asctime)s%(levelname)-8s%(message)s",
) -> None:
"""Note: `filename` should be declared in zproject/settings.py in ZULIP_PATHS."""
formatter = logging.Formatter(log_format)
handler = logging.FileHandler(filename)
handler.setFormatter(formatter)
logger.addHandler(handler)