fix error logging bruh
reee
This commit is contained in:
+3
-3
@@ -201,7 +201,7 @@ def apply_pose_as_rest(context: Context, armature_obj: Object, meshes: List[Obje
|
||||
return True, t("Operation.pose_applied")
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"Error applying pose as rest: {str(e)}")
|
||||
logger.error(f"Error applying pose as rest:", exception=e)
|
||||
return False, str(e)
|
||||
|
||||
def apply_armature_to_mesh(armature_obj: Object, mesh_obj: Object) -> None:
|
||||
@@ -336,7 +336,7 @@ def join_mesh_objects(context: Context, meshes: List[Object], progress: Optional
|
||||
return joined_mesh
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"Failed to join meshes: {str(e)}")
|
||||
logger.error(f"Failed to join meshes:", exception=e)
|
||||
return None
|
||||
|
||||
|
||||
@@ -366,7 +366,7 @@ def fix_uv_coordinates(context: Context) -> None:
|
||||
logger.debug(f"UV Fix - Successfully processed {obj.name}")
|
||||
|
||||
except Exception as e:
|
||||
logger.warning(f"UV Fix - Skipped processing for {obj.name}: {str(e)}")
|
||||
logger.warning(f"UV Fix - Skipped processing for {obj.name}:", exception=e)
|
||||
|
||||
finally:
|
||||
bpy.ops.object.mode_set(mode='OBJECT')
|
||||
|
||||
@@ -84,7 +84,7 @@ def import_multi_files(
|
||||
progress.update(file["name"])
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"Import failed: {str(e)}", exc_info=True)
|
||||
logger.error(f"Import failed:", exception=e)
|
||||
raise
|
||||
|
||||
ImportMethod = Callable[[str, List[Dict[str, str]], str], None]
|
||||
|
||||
@@ -22,7 +22,7 @@ def configure_logging(enabled: bool = False) -> None:
|
||||
logger.addHandler(handler)
|
||||
|
||||
def error_with_traceback(msg, *args, **kwargs):
|
||||
if kwargs.get('exc_info', False) or isinstance(msg, Exception):
|
||||
if isinstance(kwargs.get('exception', None), Exception):
|
||||
full_msg = f"{msg}\n{traceback.format_exc()}"
|
||||
_original_error(full_msg, *args, **{**kwargs, 'exc_info': False})
|
||||
else:
|
||||
|
||||
@@ -92,7 +92,7 @@ class AvatarToolkit_OT_ConvertResonite(Operator):
|
||||
progress.step(t("Tools.convert_resonite.processing", name=bone.name))
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"Error during Resonite conversion: {str(e)}")
|
||||
logger.error(f"Error during Resonite conversion:", exception=e)
|
||||
self.report({'ERROR'}, str(e))
|
||||
return {'CANCELLED'}
|
||||
|
||||
@@ -100,7 +100,7 @@ class AvatarToolkit_OT_ConvertResonite(Operator):
|
||||
try:
|
||||
bpy.ops.object.mode_set(mode='OBJECT')
|
||||
except Exception as e:
|
||||
logger.warning(f"Error returning to object mode: {str(e)}")
|
||||
logger.warning(f"Error returning to object mode:", exception=e)
|
||||
|
||||
if translate_bone_fails > 0:
|
||||
logger.info(f"Conversion completed with {translate_bone_fails} untranslated bones")
|
||||
|
||||
@@ -306,6 +306,6 @@ class AvatarToolKit_OT_AtlasMaterials(Operator):
|
||||
return {"FINISHED"}
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"Error creating material atlas: {str(e)}", exc_info=True)
|
||||
logger.error(f"Error creating material atlas:", exception=e)
|
||||
self.report({'ERROR'}, t("TextureAtlas.atlas_error"))
|
||||
raise e
|
||||
|
||||
@@ -72,7 +72,7 @@ class AvatarToolkit_OT_MergeArmature(bpy.types.Operator):
|
||||
return {'FINISHED'}
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"Error merging armatures: {str(e)}")
|
||||
logger.error(f"Error merging armatures:", exception=e)
|
||||
self.report({'ERROR'}, str(e))
|
||||
return {'CANCELLED'}
|
||||
|
||||
|
||||
@@ -115,7 +115,7 @@ class AvatarToolkit_OT_AttachMesh(Operator):
|
||||
return {'FINISHED'}
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"Failed to attach mesh: {str(e)}")
|
||||
logger.error(f"Failed to attach mesh:", exception=e)
|
||||
self.report({'ERROR'}, str(e))
|
||||
return {'CANCELLED'}
|
||||
|
||||
|
||||
@@ -105,7 +105,7 @@ class CreateEyesAV3Button(bpy.types.Operator):
|
||||
return {'FINISHED'}
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"Eye tracking setup failed: {str(e)}")
|
||||
logger.error(f"Eye tracking setup failed:", exception=e)
|
||||
return {'CANCELLED'}
|
||||
|
||||
class CreateEyesSDK2Button(bpy.types.Operator):
|
||||
@@ -197,7 +197,7 @@ class CreateEyesSDK2Button(bpy.types.Operator):
|
||||
return {'FINISHED'}
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"Eye tracking setup failed: {str(e)}")
|
||||
logger.error(f"Eye tracking setup failed:", exception=e)
|
||||
return {'CANCELLED'}
|
||||
|
||||
class EyeTrackingBackup:
|
||||
@@ -223,7 +223,7 @@ class EyeTrackingBackup:
|
||||
json.dump(self.bone_positions, f)
|
||||
return True
|
||||
except Exception as e:
|
||||
logger.error(f"Backup failed: {str(e)}")
|
||||
logger.error(f"Backup failed:", exception=e)
|
||||
return False
|
||||
|
||||
def restore_bone_positions(self, armature) -> bool:
|
||||
@@ -244,7 +244,7 @@ class EyeTrackingBackup:
|
||||
|
||||
return True
|
||||
except Exception as e:
|
||||
logger.error(f"Restore failed: {str(e)}")
|
||||
logger.error(f"Restore failed:", exception=e)
|
||||
return False
|
||||
|
||||
class EyeTrackingValidator:
|
||||
|
||||
@@ -113,7 +113,7 @@ class AvatarToolkit_OT_CombineMaterials(Operator):
|
||||
try:
|
||||
num_combined = self.consolidate_materials(meshes)
|
||||
except Exception as e:
|
||||
logger.error(f"Material consolidation failed: {str(e)}")
|
||||
logger.error(f"Material consolidation failed:", exception=e)
|
||||
self.report({'ERROR'}, t("Optimization.error.consolidation"))
|
||||
return {'CANCELLED'}
|
||||
progress.step("Consolidated materials")
|
||||
@@ -121,7 +121,7 @@ class AvatarToolkit_OT_CombineMaterials(Operator):
|
||||
try:
|
||||
num_cleaned = self.clean_material_slots(meshes)
|
||||
except Exception as e:
|
||||
logger.error(f"Material slot cleanup failed: {str(e)}")
|
||||
logger.error(f"Material slot cleanup failed:", exception=e)
|
||||
self.report({'ERROR'}, t("Optimization.error.slot_cleanup"))
|
||||
return {'CANCELLED'}
|
||||
progress.step("Cleaned material slots")
|
||||
@@ -129,7 +129,7 @@ class AvatarToolkit_OT_CombineMaterials(Operator):
|
||||
try:
|
||||
num_removed = clear_unused_data_blocks()
|
||||
except Exception as e:
|
||||
logger.error(f"Data block cleanup failed: {str(e)}")
|
||||
logger.error(f"Data block cleanup failed:", exception=e)
|
||||
self.report({'ERROR'}, t("Optimization.error.data_cleanup"))
|
||||
return {'CANCELLED'}
|
||||
progress.step("Removed unused data blocks")
|
||||
@@ -142,7 +142,7 @@ class AvatarToolkit_OT_CombineMaterials(Operator):
|
||||
return {'FINISHED'}
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"Failed to combine materials: {str(e)}")
|
||||
logger.error(f"Failed to combine materials:", exception=e)
|
||||
self.report({'ERROR'}, t("Optimization.error.combine_materials", error=str(e)))
|
||||
return {'CANCELLED'}
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@ class AvatarToolkit_OT_JoinAllMeshes(Operator):
|
||||
return {'CANCELLED'}
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"Failed to join meshes: {str(e)}")
|
||||
logger.error(f"Failed to join meshes:", exception=e)
|
||||
self.report({'ERROR'}, t("Optimization.error.join_meshes", error=str(e)))
|
||||
return {'CANCELLED'}
|
||||
|
||||
@@ -96,6 +96,6 @@ class AvatarToolkit_OT_JoinSelectedMeshes(Operator):
|
||||
return {'CANCELLED'}
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"Failed to join selected meshes: {str(e)}")
|
||||
logger.error(f"Failed to join selected meshes:", exception=e)
|
||||
self.report({'ERROR'}, t("Optimization.error.join_selected", error=str(e)))
|
||||
return {'CANCELLED'}
|
||||
|
||||
@@ -164,7 +164,7 @@ class AvatarToolkit_OT_RemoveDoubles(Operator):
|
||||
return {'RUNNING_MODAL'}
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"Error in execute: {str(e)}")
|
||||
logger.error(f"Error in execute:", exception=e)
|
||||
return {'CANCELLED'}
|
||||
|
||||
def modify_mesh(self, context: Context, mesh: MeshEntry) -> None:
|
||||
@@ -188,7 +188,7 @@ class AvatarToolkit_OT_RemoveDoubles(Operator):
|
||||
mesh["mesh"].select_set(False)
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"Error in modify_mesh: {str(e)}")
|
||||
logger.error(f"Error in modify_mesh:", exception=e)
|
||||
|
||||
def modify_mesh_advanced(self, context: Context, mesh_entry: MeshEntry) -> int:
|
||||
"""Advanced mesh modification with shape key handling"""
|
||||
@@ -221,7 +221,7 @@ class AvatarToolkit_OT_RemoveDoubles(Operator):
|
||||
return len(final_merged_vertex_group)
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"Error in modify_mesh_advanced: {str(e)}")
|
||||
logger.error(f"Error in modify_mesh_advanced:", exception=e)
|
||||
return 1
|
||||
|
||||
def apply_final_merging(self, context: Context, mesh_entry: MeshEntry, vertex_group: list[int], merge_distance: float) -> None:
|
||||
@@ -310,5 +310,5 @@ class AvatarToolkit_OT_RemoveDoubles(Operator):
|
||||
return {'RUNNING_MODAL'}
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"Error in modal: {str(e)}")
|
||||
logger.error(f"Error in modal:", exception=e)
|
||||
return {'CANCELLED'}
|
||||
|
||||
@@ -63,7 +63,7 @@ class AvatarToolkit_OT_StartPoseMode(Operator):
|
||||
|
||||
return {'FINISHED'}
|
||||
except Exception as e:
|
||||
logger.error(f"Failed to start pose mode: {str(e)}")
|
||||
logger.error(f"Failed to start pose mode:", exception=e)
|
||||
self.report({'ERROR'}, t("PoseMode.error.start", error=str(e)))
|
||||
return {'CANCELLED'}
|
||||
|
||||
@@ -86,7 +86,7 @@ class AvatarToolkit_OT_StopPoseMode(Operator):
|
||||
bpy.ops.object.mode_set(mode='OBJECT')
|
||||
return {'FINISHED'}
|
||||
except Exception as e:
|
||||
logger.error(f"Failed to stop pose mode: {str(e)}")
|
||||
logger.error(f"Failed to stop pose mode:", exception=e)
|
||||
self.report({'ERROR'}, t("PoseMode.error.stop", error=str(e)))
|
||||
return {'CANCELLED'}
|
||||
|
||||
@@ -130,7 +130,7 @@ class AvatarToolkit_OT_ApplyPoseAsRest(Operator, BatchPoseOperationMixin):
|
||||
|
||||
return {'FINISHED'}
|
||||
except Exception as e:
|
||||
logger.error(f"Failed to apply pose as shape key: {str(e)}")
|
||||
logger.error(f"Failed to apply pose as shape key:", exception=e)
|
||||
self.report({'ERROR'}, t("PoseMode.error.shapekey", error=str(e)))
|
||||
return {'CANCELLED'}
|
||||
|
||||
@@ -161,6 +161,6 @@ class AvatarToolkit_OT_ApplyPoseAsShapekey(Operator, BatchPoseOperationMixin):
|
||||
logger.info("Successfully applied pose as rest")
|
||||
return {'FINISHED'}
|
||||
except Exception as e:
|
||||
logger.error(f"Failed to apply pose as rest: {str(e)}")
|
||||
logger.error(f"Failed to apply pose as rest:", exception=e)
|
||||
self.report({'ERROR'}, t("PoseMode.error.rest_pose", error=str(e)))
|
||||
return {'CANCELLED'}
|
||||
|
||||
@@ -43,7 +43,7 @@ class AvatarToolkit_OT_ApplyTransforms(Operator):
|
||||
return {'FINISHED'}
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"Failed to apply transforms: {str(e)}")
|
||||
logger.error(f"Failed to apply transforms:", exception=e)
|
||||
self.report({'ERROR'}, str(e))
|
||||
return {'CANCELLED'}
|
||||
|
||||
@@ -87,6 +87,6 @@ class AvatarToolkit_OT_CleanShapekeys(Operator):
|
||||
return {'FINISHED'}
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"Failed to clean shape keys: {str(e)}")
|
||||
logger.error(f"Failed to clean shape keys:", exception=e)
|
||||
self.report({'ERROR'}, str(e))
|
||||
return {'CANCELLED'}
|
||||
|
||||
@@ -51,7 +51,7 @@ class AvatarToolkit_OT_ConnectBones(Operator):
|
||||
return {'FINISHED'}
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"Failed to connect bones: {str(e)}")
|
||||
logger.error(f"Failed to connect bones:", exception=e)
|
||||
self.report({'ERROR'}, str(e))
|
||||
return {'CANCELLED'}
|
||||
|
||||
@@ -105,7 +105,7 @@ class AvatarToolkit_OT_MergeToActive(Operator):
|
||||
return {'FINISHED'}
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"Failed to merge bones: {str(e)}")
|
||||
logger.error(f"Failed to merge bones:", exception=e)
|
||||
self.report({'ERROR'}, str(e))
|
||||
return {'CANCELLED'}
|
||||
|
||||
@@ -157,6 +157,6 @@ class AvatarToolkit_OT_MergeToParent(Operator):
|
||||
return {'FINISHED'}
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"Failed to merge bones: {str(e)}")
|
||||
logger.error(f"Failed to merge bones:", exception=e)
|
||||
self.report({'ERROR'}, str(e))
|
||||
return {'CANCELLED'}
|
||||
|
||||
@@ -57,7 +57,7 @@ class AvatarToolkit_OT_ConvertRigifyToUnity(Operator):
|
||||
return {'FINISHED'}
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"Failed to convert Rigify: {str(e)}", exc_info=True)
|
||||
logger.error(f"Failed to convert Rigify:", exception=e)
|
||||
self.report({'ERROR'}, str(e))
|
||||
return {'CANCELLED'}
|
||||
|
||||
|
||||
@@ -103,7 +103,7 @@ class AvatarToolkit_OT_StandardizeArmature(Operator):
|
||||
return {'FINISHED'}
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"Failed to standardize armature: {str(e)}")
|
||||
logger.error(f"Failed to standardize armature:", exception=e)
|
||||
self.report({'ERROR'}, str(e))
|
||||
|
||||
try:
|
||||
|
||||
@@ -246,7 +246,7 @@ class AvatarToolkit_OT_AlignUVEdgesToTarget(Operator):
|
||||
logger.info(f"Finished mesh {source} for UV's")
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"Error processing source {source}: {str(e)}")
|
||||
logger.error(f"Error processing source {source}:", exception=e)
|
||||
return {'CANCELLED'}
|
||||
|
||||
bpy.ops.object.mode_set(mode=prev_mode)
|
||||
|
||||
@@ -222,7 +222,7 @@ class ATOOLKIT_OT_create_visemes(Operator):
|
||||
self.report({'INFO'}, t("Visemes.success"))
|
||||
return {'FINISHED'}
|
||||
except Exception as e:
|
||||
logger.error(f"Error creating visemes: {str(e)}")
|
||||
logger.error(f"Error creating visemes:", exception=e)
|
||||
self.report({'ERROR'}, str(e))
|
||||
return {'CANCELLED'}
|
||||
|
||||
|
||||
@@ -81,7 +81,7 @@ class AvatarToolKit_OT_ExpandSectionMaterials(Operator):
|
||||
|
||||
return {'FINISHED'}
|
||||
except Exception as e:
|
||||
logger.error(f"Error loading materials: {str(e)}", exc_info=True)
|
||||
logger.error(f"Error loading materials:", exception=e)
|
||||
self.report({'ERROR'}, t("TextureAtlas.load_error"))
|
||||
return {'CANCELLED'}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user