Browse Source

Feat: get logger in each file

dk 1 year ago
parent
commit
281048b0f5
5 changed files with 9 additions and 160 deletions
  1. 5 3
      backend/bci_core/online.py
  2. 3 1
      backend/bci_core/utils.py
  3. 0 131
      backend/logging.json
  4. 0 24
      backend/settings/config.py
  5. 1 1
      backend/training.py

+ 5 - 3
backend/bci_core/online.py

@@ -7,6 +7,8 @@ import mne
 from .feature_extractors import filterbank_extractor
 from .utils import parse_model_type
 
+logger = logging.getLogger(__name__)
+
 
 class Controller:
     """在线控制接口
@@ -43,14 +45,14 @@ class Controller:
             int: 统一化标签 (-1: keep, 0: rest, 1: cylinder, 2: ball, 3: flex, 4: double, 5: treble)
         """
         virtual_feedback = self.virtual_feedback(true_label)
-        logging.debug('step_decision: virtual feedback: {}'.format(virtual_feedback))
+        logger.debug('step_decision: virtual feedback: {}'.format(virtual_feedback))
         if virtual_feedback is not None:
             return virtual_feedback
 
         if self.real_feedback_model is not None:
             fs, data = self.real_feedback_model.parse_data(data)
             p = self.real_feedback_model.step_probability(fs, data)
-            logging.debug('step_decison: model probability: {}'.format(str(p)))
+            logger.debug('step_decison: model probability: {}'.format(str(p)))
             pred = np.argmax(p)
             real_decision = self.real_feedback_model.model.classes_[pred]
             return real_decision
@@ -155,7 +157,7 @@ class HMMModel:
         self._probability = (self.state_trans_matrix * self._probability.T).sum(axis=1) * current_p
         # normalize
         self._probability /= np.sum(self._probability)
-        logging.debug("viterbi probability, {}".format(str(self._probability)))
+        logger.debug("viterbi probability, {}".format(str(self._probability)))
 
         current_state = np.argmax(self._probability)
         if current_state == self._last_state:

+ 3 - 1
backend/bci_core/utils.py

@@ -5,6 +5,8 @@ from sklearn.metrics import roc_auc_score
 import logging
 import os
 
+logger = logging.getLogger(__name__)
+
 
 def parse_model_type(model_path):
     model_path = os.path.normpath(model_path)
@@ -119,6 +121,6 @@ def param_search(model_func, X, y, params: dict, random_state=123):
             best_auc = auc
         
         # print each steps
-        logging.debug(f'Current: {p_dict}, {auc}; Best: {best_param}, {best_auc}')
+        logger.debug(f'Current: {p_dict}, {auc}; Best: {best_param}, {best_auc}')
 
     return best_auc, best_param

+ 0 - 131
backend/logging.json

@@ -1,131 +0,0 @@
-{
-    "version": 1,
-    "disable_existing_loggers": false,
-    "formatters": {
-        "standard": {
-            "format": "%(asctime)s [%(name)s:%(lineno)d] [%(module)s:%(funcName)s] [%(levelname)s]- %(message)s"
-        },
-        "api": {
-            "format": "%(asctime)s - %(levelname)s - %(message)s"
-        }
-    },
-    "filters": {},
-    "handlers": {
-        "default": {
-            "class": "logging.handlers.RotatingFileHandler",
-            "level": "INFO",
-            "formatter": "standard",
-            "filename": "./logs/info.log",
-            "maxBytes": 10485760,
-            "backupCount": 20,
-            "encoding": "utf8"
-        },
-        "console": {
-            "class": "logging.StreamHandler",
-            "level": "DEBUG",
-            "formatter": "standard"
-        },
-        "error_file_handler": {
-            "class": "logging.handlers.RotatingFileHandler",
-            "level": "ERROR",
-            "formatter": "standard",
-            "filename": "./logs/errors.log",
-            "maxBytes": 10485760,
-            "backupCount": 20,
-            "encoding": "utf8"
-        },
-        "debug_file_handler": {
-            "class": "logging.handlers.RotatingFileHandler",
-            "level": "DEBUG",
-            "filename": "./logs/debug.log",
-            "maxBytes": 10485760,
-            "backupCount": 5,
-            "formatter": "standard",
-            "encoding": "utf8"
-        },
-        "api_file_handler": {
-            "class": "logging.handlers.RotatingFileHandler",
-            "level": "INFO",
-            "filename": "./logs/api.log",
-            "maxBytes": 10485760,
-            "backupCount": 5,
-            "formatter": "api"
-        }
-    },
-    "loggers": {
-        "multipart.multipart":{
-            "level": "WARNING",
-            "propagate": false
-        },
-        "uvicorn.access": {
-            "handlers": [
-                "api_file_handler"
-            ]
-        },
-        "mne": {
-            "level": "ERROR"
-        },
-        "matplotlib": {
-            "level": "ERROR"
-        },
-        "PIL.PngImagePlugin": {
-            "level": "ERROR"
-        },
-        "core.gait_analysis": {
-            "handlers": [
-                "default",
-                "console"
-            ],
-            "level": "INFO",
-            "propagate": false
-        },
-        "core.facial_expression": {
-            "handlers": [
-                "default",
-                "error_file_handler",
-                "debug_file_handler",
-                "console"
-            ],
-            "level": "INFO",
-            "propagate": false
-        },
-        "core.posture": {
-            "handlers": [
-                "default",
-                "error_file_handler",
-                "debug_file_handler",
-                "console"
-            ],
-            "level": "INFO",
-            "propagate": false
-        },
-        "core.utils": {
-            "handlers": [
-                "default",
-                "error_file_handler",
-                "debug_file_handler",
-                "console"
-            ],
-            "level": "INFO",
-            "propagate": false
-        },
-        "core.sig_chain.device.pony": {
-            "handlers": [
-                "default",
-                "error_file_handler",
-                "debug_file_handler"
-            ],
-            "level": "INFO",
-            "propagate": false
-        }
-    },
-    "root":{
-        "handlers": [
-            "default",
-            "error_file_handler",
-            "debug_file_handler",
-            "console"
-        ],
-        "level": "DEBUG"
-    }
-}

+ 0 - 24
backend/settings/config.py

@@ -1,7 +1,6 @@
 """Module core/configs provide project base settings"""
 import glob
 import json
-import logging
 import os
 import os.path
 
@@ -63,26 +62,3 @@ class Settings:
 
 
 settings = Settings()
-
-
-def setup_logging(default_path='logging.json',
-                  default_level=logging.INFO,
-                  env_key='LOG_CFG'):
-    """Setup logging configuration
-
-    """
-    path = default_path
-    value = os.getenv(env_key, None)
-    if value:
-        path = value
-    if os.path.exists(path):
-        with open(path, 'rt', encoding='utf-8') as f:
-            config = json.load(f)
-        logging.config.dictConfig(config)
-    else:
-        logging.basicConfig(level=default_level)
-
-
-def set_deepface_env():
-    # os.environ['DEEPFACE_HOME'] = Path(__file__).resolve().parent.as_posix()
-    os.environ['DEEPFACE_HOME'] = settings.get_resource_dir(['']).as_posix()

+ 1 - 1
backend/training.py

@@ -99,7 +99,7 @@ def _train_baseline_model(raw, events, duration=1., ):
     y = events[:, -1]
 
     best_auc, best_param = bci_utils.param_search(bci_model.baseline_model, X, y, {'C': np.logspace(-5, 4, 10)})
-    logging.info(f'Best parameter: {best_param}, best auc {best_auc}')
+    logger.info(f'Best parameter: {best_param}, best auc {best_auc}')
 
     model_to_train = bci_model.baseline_model(**best_param)
     model_to_train.fit(X, y)