forked from JOJ/Joint-Teapot
		
	feat: InterceptHandler with diagnose and backtrace
This commit is contained in:
		
							parent
							
								
									cae195a4b5
								
							
						
					
					
						commit
						04995f1934
					
				|  | @ -11,6 +11,11 @@ from joint_teapot.config import settings | |||
| 
 | ||||
| # recipe from https://loguru.readthedocs.io/en/stable/overview.html#entirely-compatible-with-standard-logging | ||||
| class InterceptHandler(logging.Handler): | ||||
|     def __init__(self, diagnose: bool = True, backtrace: bool = True): | ||||
|         super().__init__() | ||||
|         self.diagnose = diagnose | ||||
|         self.backtrace = backtrace | ||||
| 
 | ||||
|     def emit(self, record: logging.LogRecord) -> None: | ||||
|         try: | ||||
|             level = logger.level(record.levelname).name | ||||
|  | @ -25,7 +30,7 @@ class InterceptHandler(logging.Handler): | |||
|             depth += 1 | ||||
| 
 | ||||
|         logger.opt(depth=depth, exception=record.exc_info).log( | ||||
|             level, record.getMessage() | ||||
|             level, record.getMessage(), diagnose=self.diagnose, backtrace=self.backtrace | ||||
|         ) | ||||
| 
 | ||||
| 
 | ||||
|  | @ -35,7 +40,9 @@ def set_logger( | |||
|     diagnose: bool = True, | ||||
|     backtrace: bool = True, | ||||
| ) -> None: | ||||
|     logging.basicConfig(handlers=[InterceptHandler()], level=0, force=True) | ||||
|     logging.basicConfig( | ||||
|         handlers=[InterceptHandler(diagnose, backtrace)], level=0, force=True | ||||
|     ) | ||||
|     logger.remove() | ||||
|     logger.add( | ||||
|         stderr, | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user