forked from JOJ/Joint-Teapot
		
	feat: InterceptHandler with no depth on no backtrace
This commit is contained in:
		
							parent
							
								
									04995f1934
								
							
						
					
					
						commit
						fdfebc87d8
					
				|  | @ -11,9 +11,8 @@ from joint_teapot.config import settings | ||||||
| 
 | 
 | ||||||
| # recipe from https://loguru.readthedocs.io/en/stable/overview.html#entirely-compatible-with-standard-logging | # recipe from https://loguru.readthedocs.io/en/stable/overview.html#entirely-compatible-with-standard-logging | ||||||
| class InterceptHandler(logging.Handler): | class InterceptHandler(logging.Handler): | ||||||
|     def __init__(self, diagnose: bool = True, backtrace: bool = True): |     def __init__(self, backtrace: bool = True): | ||||||
|         super().__init__() |         super().__init__() | ||||||
|         self.diagnose = diagnose |  | ||||||
|         self.backtrace = backtrace |         self.backtrace = backtrace | ||||||
| 
 | 
 | ||||||
|     def emit(self, record: logging.LogRecord) -> None: |     def emit(self, record: logging.LogRecord) -> None: | ||||||
|  | @ -22,16 +21,16 @@ class InterceptHandler(logging.Handler): | ||||||
|         except ValueError: |         except ValueError: | ||||||
|             level = record.levelno |             level = record.levelno | ||||||
| 
 | 
 | ||||||
|         # Find caller from where originated the logged message |         logger_opt = logger.opt(depth=0) | ||||||
|         frame: Optional[FrameType] = sys._getframe(6) |         if self.backtrace: | ||||||
|         depth = 6 |             # Find caller from where originated the logged message | ||||||
|         while frame and frame.f_code.co_filename == logging.__file__: |             frame: Optional[FrameType] = sys._getframe(6) | ||||||
|             frame = frame.f_back |             depth = 6 | ||||||
|             depth += 1 |             while frame and frame.f_code.co_filename == logging.__file__: | ||||||
| 
 |                 frame = frame.f_back | ||||||
|         logger.opt(depth=depth, exception=record.exc_info).log( |                 depth += 1 | ||||||
|             level, record.getMessage(), diagnose=self.diagnose, backtrace=self.backtrace |             logger_opt = logger.opt(depth=depth, exception=record.exc_info) | ||||||
|         ) |         logger_opt.log(level, record.getMessage()) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def set_logger( | def set_logger( | ||||||
|  | @ -40,9 +39,7 @@ def set_logger( | ||||||
|     diagnose: bool = True, |     diagnose: bool = True, | ||||||
|     backtrace: bool = True, |     backtrace: bool = True, | ||||||
| ) -> None: | ) -> None: | ||||||
|     logging.basicConfig( |     logging.basicConfig(handlers=[InterceptHandler(backtrace)], level=0, force=True) | ||||||
|         handlers=[InterceptHandler(diagnose, backtrace)], level=0, force=True |  | ||||||
|     ) |  | ||||||
|     logger.remove() |     logger.remove() | ||||||
|     logger.add( |     logger.add( | ||||||
|         stderr, |         stderr, | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user