Handles the creation and retrieval of loggers to avoid re-instantiation.
(self, show_logs: bool, log_handler=None)
| 346 | raise InstaPyError(err_msg) |
| 347 | |
| 348 | def get_instapy_logger(self, show_logs: bool, log_handler=None): |
| 349 | """ |
| 350 | Handles the creation and retrieval of loggers to avoid |
| 351 | re-instantiation. |
| 352 | """ |
| 353 | |
| 354 | existing_logger = Settings.loggers.get(self.username) |
| 355 | if existing_logger is not None: |
| 356 | return existing_logger |
| 357 | else: |
| 358 | # initialize and setup logging system for the InstaPy object |
| 359 | logger = logging.getLogger(self.username) |
| 360 | logger.setLevel(logging.DEBUG) |
| 361 | # log name and format |
| 362 | general_log = "{}general.log".format(self.logfolder) |
| 363 | file_handler = logging.FileHandler(general_log) |
| 364 | # log rotation, 5 logs with 10MB size each one |
| 365 | file_handler = RotatingFileHandler( |
| 366 | general_log, maxBytes=10 * 1024 * 1024, backupCount=5 |
| 367 | ) |
| 368 | file_handler.setLevel(logging.DEBUG) |
| 369 | extra = {"username": self.username} |
| 370 | logger_formatter = logging.Formatter( |
| 371 | "%(levelname)s [%(asctime)s] [%(username)s] %(message)s", |
| 372 | datefmt="%Y-%m-%d %H:%M:%S", |
| 373 | ) |
| 374 | file_handler.setFormatter(logger_formatter) |
| 375 | logger.addHandler(file_handler) |
| 376 | |
| 377 | # add custom user handler if given |
| 378 | if log_handler: |
| 379 | logger.addHandler(log_handler) |
| 380 | |
| 381 | if show_logs is True: |
| 382 | console_handler = logging.StreamHandler() |
| 383 | console_handler.setLevel(logging.DEBUG) |
| 384 | console_handler.setFormatter(logger_formatter) |
| 385 | logger.addHandler(console_handler) |
| 386 | |
| 387 | logger = logging.LoggerAdapter(logger, extra) |
| 388 | |
| 389 | Settings.loggers[self.username] = logger |
| 390 | Settings.logger = logger |
| 391 | return logger |
| 392 | |
| 393 | def set_selenium_remote_session( |
| 394 | self, logger, selenium_url: str = "", selenium_driver=None |