mirror of
https://github.com/Steffo99/unimore-bda-6.git
synced 2024-11-21 15:34:18 +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/training/
|
||||||
data/validation/
|
data/validation/
|
||||||
data/evaluation/
|
data/evaluation/
|
||||||
|
data/logs/
|
||||||
|
|
||||||
##################
|
##################
|
||||||
# Python ignores #
|
# Python ignores #
|
||||||
|
|
|
@ -10,6 +10,8 @@
|
||||||
<excludeFolder url="file://$MODULE_DIR$/.venv" />
|
<excludeFolder url="file://$MODULE_DIR$/.venv" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/data/evaluation" />
|
<excludeFolder url="file://$MODULE_DIR$/data/evaluation" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/data/training" />
|
<excludeFolder url="file://$MODULE_DIR$/data/training" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/data/validation" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/data/logs" />
|
||||||
</content>
|
</content>
|
||||||
<orderEntry type="jdk" jdkName="Poetry (unimore-bda-6)" jdkType="Python SDK" />
|
<orderEntry type="jdk" jdkName="Poetry (unimore-bda-6)" jdkType="Python SDK" />
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
import logging
|
import logging
|
||||||
import pymongo.errors
|
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 .config import config
|
||||||
from .database import mongo_client_from_config, reviews_collection, sample_reviews_polar, sample_reviews_varied
|
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]:
|
for sample_func in [sample_reviews_varied, sample_reviews_polar]:
|
||||||
|
|
||||||
slog = logging.getLogger(f"{__name__}.{sample_func.__name__}")
|
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 [
|
for SentimentAnalyzer in [
|
||||||
TensorflowSentimentAnalyzer,
|
TensorflowSentimentAnalyzer,
|
||||||
|
@ -44,7 +44,7 @@ def main():
|
||||||
]:
|
]:
|
||||||
|
|
||||||
slog = logging.getLogger(f"{__name__}.{sample_func.__name__}.{SentimentAnalyzer.__name__}")
|
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 [
|
for Tokenizer in [
|
||||||
PlainTokenizer,
|
PlainTokenizer,
|
||||||
|
@ -55,7 +55,7 @@ def main():
|
||||||
]:
|
]:
|
||||||
|
|
||||||
slog = logging.getLogger(f"{__name__}.{sample_func.__name__}.{SentimentAnalyzer.__name__}.{Tokenizer.__name__}")
|
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
|
run_counter = 0
|
||||||
|
|
||||||
|
@ -66,10 +66,10 @@ def main():
|
||||||
slog.debug("Run #%d", run_counter)
|
slog.debug("Run #%d", run_counter)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
slog.debug("Instantiating %s with %s...", SentimentAnalyzer, Tokenizer)
|
slog.debug("Instantiating %s with %s...", SentimentAnalyzer.__name__, Tokenizer.__name__)
|
||||||
sa = SentimentAnalyzer(tokenizer=Tokenizer())
|
sa = SentimentAnalyzer(tokenizer=Tokenizer())
|
||||||
except TypeError:
|
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
|
break
|
||||||
|
|
||||||
with Caches.from_database_samples(collection=reviews, sample_func=sample_func) as datasets:
|
with Caches.from_database_samples(collection=reviews, sample_func=sample_func) as datasets:
|
||||||
|
|
|
@ -1,22 +1,35 @@
|
||||||
import collections
|
import collections
|
||||||
import logging
|
import logging
|
||||||
import coloredlogs
|
import coloredlogs
|
||||||
|
import pathlib
|
||||||
|
|
||||||
this_log = logging.getLogger(__name__)
|
this_log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
def install_log_handler(loggers: list[logging.Logger] = None):
|
def install_general_log_handlers():
|
||||||
if loggers is None:
|
"""
|
||||||
loggers = [
|
Setup the `unimore_bda_6` and ``__main__`` loggers.
|
||||||
logging.getLogger("__main__"),
|
|
||||||
logging.getLogger("unimore_bda_6"),
|
|
||||||
]
|
|
||||||
|
|
||||||
for logger in loggers:
|
With colors!
|
||||||
|
"""
|
||||||
|
main_logger: logging.Logger = logging.getLogger("__main__")
|
||||||
|
|
||||||
|
interesting_loggers: list[logging.Logger] = [
|
||||||
|
main_logger,
|
||||||
|
logging.getLogger("unimore_bda_6"),
|
||||||
|
]
|
||||||
|
|
||||||
|
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(
|
coloredlogs.install(
|
||||||
logger=logger,
|
logger=logger,
|
||||||
level="DEBUG" if __debug__ else "INFO",
|
level="DEBUG" if __debug__ else "INFO",
|
||||||
fmt="{asctime} | {name:<80} | {levelname:>8} | {message}",
|
fmt="{asctime} | {name} | {levelname} | {message}",
|
||||||
style="{",
|
style="{",
|
||||||
level_styles=dict(
|
level_styles=dict(
|
||||||
debug=dict(color="white"),
|
debug=dict(color="white"),
|
||||||
|
@ -32,10 +45,24 @@ def install_log_handler(loggers: list[logging.Logger] = None):
|
||||||
),
|
),
|
||||||
isatty=True,
|
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")
|
this_log.debug("Silencing chatty loggers...")
|
||||||
logging.getLogger("unimore_bda_6.database.datatypes").setLevel("INFO")
|
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)
|
_passage_counts = collections.defaultdict(lambda: 0)
|
||||||
|
@ -48,6 +75,6 @@ def count_passage(log: logging.Logger, key: str, mod: int):
|
||||||
|
|
||||||
|
|
||||||
__all__ = (
|
__all__ = (
|
||||||
"install_log_handler",
|
"install_general_log_handlers",
|
||||||
"count_passage",
|
"count_passage",
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in a new issue