Repository: mindsdb/lightwood

Issue:
:wrench: Improve logging for analysis blocks
## Introduction

Lightwood is an AutoML library that aims at abstracting common procedures in the Machine Learning workflow (e.g. data preparation, feature engineering, model building, model analysis) with an approach that can be fully automated but easily customizable and extended thanks to its flexibility. 

To analyze a model, a series of "analysis blocks" run after the ensemble step and when generating predictions. Each of these blocks can (1) do some type of analysis after training has finished, (2) do computations at inference time to give additional insights about predictions (e.g. a confidence score), or both (1) and (2).

## Task

In this task, we seek to improve our logging so that the user knows what block is currently running.

## Steps :male_detective: :female_detective: 

- Fork the Lightwood repository, checkout the `staging` branch and from it create a new one.
- Add the appropriate log.info() call inside `lightwood/analysis/analyze.py` saying something similar to _"The block X is now running its analyze() method"_.
- Add the appropriate log.info() call inside `lightwood/analysis/explain.py` saying something similar to _"The block X is now running its explain() method"_.
- Run an integration test to ensure the log calls are being displayed.
- Make the PR and address any comments that reviewers might make.

## Additional rewards :1st_place_medal: 

Accepted PRs for improved logging or documentation bring :one: point for entry into the draw for a :computer:  Deep Learning Laptop powered by the NVIDIA RTX 3080 Max-Q GPU or other swag :shirt: :bear: .  For more info check out https://mindsdb.com/hacktoberfest/


Discussion:

Resolving patch:
diff --git a/lightwood/analysis/analyze.py b/lightwood/analysis/analyze.py
--- a/lightwood/analysis/analyze.py
+++ b/lightwood/analysis/analyze.py
@@ -1,5 +1,6 @@
 from typing import Dict, List, Tuple, Optional
 
+from lightwood.helpers.log import log
 from lightwood.api import dtype
 from lightwood.ensemble import BaseEnsemble
 from lightwood.analysis.base import BaseAnalysisBlock
@@ -76,6 +77,7 @@ def model_analyzer(
     }
 
     for block in analysis_blocks:
+        log.info("The block %s is now running its analyze() method", block.__class__.__name__)
         runtime_analyzer = block.analyze(runtime_analyzer, **kwargs)
 
     # ------------------------- #
diff --git a/lightwood/analysis/explain.py b/lightwood/analysis/explain.py
--- a/lightwood/analysis/explain.py
+++ b/lightwood/analysis/explain.py
@@ -2,6 +2,7 @@
 import torch
 import pandas as pd
 
+from lightwood.helpers.log import log
 from lightwood.api.types import TimeseriesSettings
 from lightwood.helpers.ts import get_inferred_timestamps
 from lightwood.analysis.base import BaseAnalysisBlock
@@ -85,6 +86,7 @@ def explain(data: pd.DataFrame,
     # Call explanation blocks
     # ------------------------- #
     for block in explainer_blocks:
+        log.info("The block %s is now running its explain() method", block.__class__.__name__)
         row_insights, global_insights = block.explain(row_insights, global_insights, **kwargs)
 
     return row_insights, global_insights


Test patch: