""" Log logging_handling.log testing """ # import atexit from pathlib import Path from multiprocessing import Queue import time # this is for testing only from corelibs.logging_handling.log import Log from corelibs.logging_handling.logging_level_handling.logging_level import LoggingLevel def main(): """ Log testing """ script_path: Path = Path(__file__).resolve().parent log_queue: 'Queue[str]' = Queue() log_q = Log( log_path=script_path.joinpath('log', 'test_queue.log'), log_name="Test Log", log_settings={ "log_level_console": 'WARNING', "log_level_file": 'ERROR', "log_queue": log_queue # "console_color_output_enabled": False, } ) log_q.logger.debug('[QUEUE] Debug test: %s', log_q.logger.name) log_q.logger.info('[QUEUE] Info test: %s', log_q.logger.name) log_q.logger.warning('[QUEUE] Warning test: %s', log_q.logger.name) log_q.logger.error('[QUEUE] Error test: %s', log_q.logger.name) log_q.logger.critical('[QUEUE] Critical test: %s', log_q.logger.name) log_q.logger.log(LoggingLevel.EXCEPTION.value, '[QUEUE] Exception test: %s', log_q.logger.name, exc_info=True) time.sleep(0.1) for handler in log_q.logger.handlers: print(f"[1] Handler (logger) {handler}") if log_q.listener is not None: for handler in log_q.listener.handlers: print(f"[1] Handler (queue) {handler}") for handler in log_q.handlers.items(): print(f"[1] Handler (handlers) {handler}") log_q.set_log_level('stream_handler', LoggingLevel.ERROR) log_q.logger.warning('[QUEUE-B] [INVISIBLE] Warning test: %s', log_q.logger.name) log_q.logger.error('[QUEUE-B] [VISIBLE] Error test: %s', log_q.logger.name) for handler in log_q.logger.handlers: print(f"[2] Handler (logger) {handler}") if log_q.listener is not None: for handler in log_q.listener.handlers: print(f"[2] Handler (queue) {handler}") for handler in log_q.handlers.items(): print(f"[2] Handler (handlers) {handler}") log_q.stop_listener() if __name__ == "__main__": main() # __END__