mirror of
https://github.com/Steffo99/unimore-bda-6.git
synced 2024-11-24 00:44:17 +00:00
Configure file logging
This commit is contained in:
parent
2bd97cbad2
commit
8907272002
4 changed files with 49 additions and 19 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -13,6 +13,7 @@ data/nltk/
|
|||
data/training/
|
||||
data/validation/
|
||||
data/evaluation/
|
||||
data/logs/
|
||||
|
||||
##################
|
||||
# Python ignores #
|
||||
|
|
|
@ -10,6 +10,8 @@
|
|||
<excludeFolder url="file://$MODULE_DIR$/.venv" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/data/evaluation" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/data/training" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/data/validation" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/data/logs" />
|
||||
</content>
|
||||
<orderEntry type="jdk" jdkName="Poetry (unimore-bda-6)" jdkType="Python SDK" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
import logging
|
||||
import pymongo.errors
|
||||
from .log import install_log_handler
|
||||
from .log import install_general_log_handlers
|
||||
|
||||
install_log_handler()
|
||||
install_general_log_handlers()
|
||||
|
||||
from .config import config
|
||||
from .database import mongo_client_from_config, reviews_collection, sample_reviews_polar, sample_reviews_varied
|
||||
|
@ -36,7 +36,7 @@ def main():
|
|||
for sample_func in [sample_reviews_varied, sample_reviews_polar]:
|
||||
|
||||
slog = logging.getLogger(f"{__name__}.{sample_func.__name__}")
|
||||
slog.debug("Selected sample_func: %s", sample_func)
|
||||
slog.debug("Selected sample_func: %s", sample_func.__name__)
|
||||
|
||||
for SentimentAnalyzer in [
|
||||
TensorflowSentimentAnalyzer,
|
||||
|
@ -44,7 +44,7 @@ def main():
|
|||
]:
|
||||
|
||||
slog = logging.getLogger(f"{__name__}.{sample_func.__name__}.{SentimentAnalyzer.__name__}")
|
||||
slog.debug("Selected SentimentAnalyzer: %s", SentimentAnalyzer)
|
||||
slog.debug("Selected SentimentAnalyzer: %s", SentimentAnalyzer.__name__)
|
||||
|
||||
for Tokenizer in [
|
||||
PlainTokenizer,
|
||||
|
@ -55,7 +55,7 @@ def main():
|
|||
]:
|
||||
|
||||
slog = logging.getLogger(f"{__name__}.{sample_func.__name__}.{SentimentAnalyzer.__name__}.{Tokenizer.__name__}")
|
||||
slog.debug("Selected Tokenizer: %s", Tokenizer)
|
||||
slog.debug("Selected Tokenizer: %s", Tokenizer.__name__)
|
||||
|
||||
run_counter = 0
|
||||
|
||||
|
@ -66,10 +66,10 @@ def main():
|
|||
slog.debug("Run #%d", run_counter)
|
||||
|
||||
try:
|
||||
slog.debug("Instantiating %s with %s...", SentimentAnalyzer, Tokenizer)
|
||||
slog.debug("Instantiating %s with %s...", SentimentAnalyzer.__name__, Tokenizer.__name__)
|
||||
sa = SentimentAnalyzer(tokenizer=Tokenizer())
|
||||
except TypeError:
|
||||
slog.warning("%s is not supported by %s, skipping run...", SentimentAnalyzer, Tokenizer)
|
||||
slog.warning("%s is not supported by %s, skipping run...", SentimentAnalyzer.__name__, Tokenizer.__name__)
|
||||
break
|
||||
|
||||
with Caches.from_database_samples(collection=reviews, sample_func=sample_func) as datasets:
|
||||
|
|
|
@ -1,22 +1,35 @@
|
|||
import collections
|
||||
import logging
|
||||
import coloredlogs
|
||||
import pathlib
|
||||
|
||||
this_log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def install_log_handler(loggers: list[logging.Logger] = None):
|
||||
if loggers is None:
|
||||
loggers = [
|
||||
logging.getLogger("__main__"),
|
||||
def install_general_log_handlers():
|
||||
"""
|
||||
Setup the `unimore_bda_6` and ``__main__`` loggers.
|
||||
|
||||
With colors!
|
||||
"""
|
||||
main_logger: logging.Logger = logging.getLogger("__main__")
|
||||
|
||||
interesting_loggers: list[logging.Logger] = [
|
||||
main_logger,
|
||||
logging.getLogger("unimore_bda_6"),
|
||||
]
|
||||
|
||||
for logger in loggers:
|
||||
chatty_loggers: list[logging.Logger] = [
|
||||
logging.getLogger("unimore_bda_6.database.cache"),
|
||||
logging.getLogger("unimore_bda_6.database.datatypes"),
|
||||
]
|
||||
|
||||
this_log.debug("Installing console handlers...")
|
||||
for logger in interesting_loggers:
|
||||
coloredlogs.install(
|
||||
logger=logger,
|
||||
level="DEBUG" if __debug__ else "INFO",
|
||||
fmt="{asctime} | {name:<80} | {levelname:>8} | {message}",
|
||||
fmt="{asctime} | {name} | {levelname} | {message}",
|
||||
style="{",
|
||||
level_styles=dict(
|
||||
debug=dict(color="white"),
|
||||
|
@ -32,10 +45,24 @@ def install_log_handler(loggers: list[logging.Logger] = None):
|
|||
),
|
||||
isatty=True,
|
||||
)
|
||||
this_log.debug("Installed custom log handler on: %s", logger)
|
||||
this_log.debug("Installed console log handler on: %s", logger)
|
||||
|
||||
logging.getLogger("unimore_bda_6.database.cache").setLevel("INFO")
|
||||
logging.getLogger("unimore_bda_6.database.datatypes").setLevel("INFO")
|
||||
this_log.debug("Silencing chatty loggers...")
|
||||
for logger in chatty_loggers:
|
||||
logger.setLevel("INFO")
|
||||
this_log.debug("Silenced: %s", logger)
|
||||
|
||||
log_file_path = pathlib.Path("./data/logs/last_run.tsv")
|
||||
log_directory_path = log_file_path.parent
|
||||
this_log.debug("Ensuring %s exists...", log_directory_path)
|
||||
log_directory_path.mkdir(parents=True, exist_ok=True)
|
||||
this_log.debug("Ensuring %s exists...", log_file_path)
|
||||
open(log_file_path, "w").close()
|
||||
this_log.debug("Installing FileHandler for the __main__ logger at %s...", log_file_path)
|
||||
file_handler = logging.FileHandler(log_file_path, mode="w")
|
||||
file_handler.formatter = logging.Formatter("{asctime}\t{name}\t{levelname}\t{message}", style="{")
|
||||
main_logger.addHandler(file_handler)
|
||||
this_log.debug("Installed FileHandler for the __main__ logger at %s!", log_file_path)
|
||||
|
||||
|
||||
_passage_counts = collections.defaultdict(lambda: 0)
|
||||
|
@ -48,6 +75,6 @@ def count_passage(log: logging.Logger, key: str, mod: int):
|
|||
|
||||
|
||||
__all__ = (
|
||||
"install_log_handler",
|
||||
"install_general_log_handlers",
|
||||
"count_passage",
|
||||
)
|
||||
|
|
Loading…
Reference in a new issue