From 9a84cf52b593e2795bd46ad3656f573934c16213 Mon Sep 17 00:00:00 2001 From: 989onan Date: Sun, 11 May 2025 12:07:51 -0400 Subject: [PATCH] fix error logging bruh reee --- core/common.py | 6 +++--- core/importers/importer.py | 2 +- core/logging_setup.py | 2 +- core/resonite_utils.py | 4 ++-- functions/atlas_materials.py | 2 +- functions/custom_tools/armature_merging.py | 2 +- functions/custom_tools/mesh_attachment.py | 2 +- functions/eye_tracking.py | 8 ++++---- functions/optimization/materials_tools.py | 8 ++++---- functions/optimization/mesh_tools.py | 4 ++-- functions/optimization/remove_doubles.py | 8 ++++---- functions/pose_mode.py | 8 ++++---- functions/tools/additional_tools.py | 4 ++-- functions/tools/merge_tools.py | 6 +++--- functions/tools/rigify_converter.py | 2 +- functions/tools/standardize_armature.py | 2 +- functions/tools/uv_tools.py | 2 +- functions/visemes.py | 2 +- ui/atlas_materials_panel.py | 2 +- 19 files changed, 38 insertions(+), 38 deletions(-) diff --git a/core/common.py b/core/common.py index 4190571..bb27293 100644 --- a/core/common.py +++ b/core/common.py @@ -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') diff --git a/core/importers/importer.py b/core/importers/importer.py index feb8e93..e2b77a8 100644 --- a/core/importers/importer.py +++ b/core/importers/importer.py @@ -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] diff --git a/core/logging_setup.py b/core/logging_setup.py index 9e86872..9c65b8a 100644 --- a/core/logging_setup.py +++ b/core/logging_setup.py @@ -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: diff --git a/core/resonite_utils.py b/core/resonite_utils.py index e5a210b..9462f29 100644 --- a/core/resonite_utils.py +++ b/core/resonite_utils.py @@ -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") diff --git a/functions/atlas_materials.py b/functions/atlas_materials.py index 8c38f9e..bc9dc77 100644 --- a/functions/atlas_materials.py +++ b/functions/atlas_materials.py @@ -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 diff --git a/functions/custom_tools/armature_merging.py b/functions/custom_tools/armature_merging.py index 133fe65..6a9c2ed 100644 --- a/functions/custom_tools/armature_merging.py +++ b/functions/custom_tools/armature_merging.py @@ -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'} diff --git a/functions/custom_tools/mesh_attachment.py b/functions/custom_tools/mesh_attachment.py index d660e76..fda3385 100644 --- a/functions/custom_tools/mesh_attachment.py +++ b/functions/custom_tools/mesh_attachment.py @@ -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'} diff --git a/functions/eye_tracking.py b/functions/eye_tracking.py index e720286..0f8d139 100644 --- a/functions/eye_tracking.py +++ b/functions/eye_tracking.py @@ -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: diff --git a/functions/optimization/materials_tools.py b/functions/optimization/materials_tools.py index b6983d4..0e01fa9 100644 --- a/functions/optimization/materials_tools.py +++ b/functions/optimization/materials_tools.py @@ -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'} diff --git a/functions/optimization/mesh_tools.py b/functions/optimization/mesh_tools.py index 825b493..6110507 100644 --- a/functions/optimization/mesh_tools.py +++ b/functions/optimization/mesh_tools.py @@ -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'} diff --git a/functions/optimization/remove_doubles.py b/functions/optimization/remove_doubles.py index e5c20e5..6a589f9 100644 --- a/functions/optimization/remove_doubles.py +++ b/functions/optimization/remove_doubles.py @@ -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'} diff --git a/functions/pose_mode.py b/functions/pose_mode.py index 6cf2b00..cef77f6 100644 --- a/functions/pose_mode.py +++ b/functions/pose_mode.py @@ -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'} diff --git a/functions/tools/additional_tools.py b/functions/tools/additional_tools.py index 91afaee..47a11d0 100644 --- a/functions/tools/additional_tools.py +++ b/functions/tools/additional_tools.py @@ -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'} diff --git a/functions/tools/merge_tools.py b/functions/tools/merge_tools.py index 4078f91..31d579e 100644 --- a/functions/tools/merge_tools.py +++ b/functions/tools/merge_tools.py @@ -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'} diff --git a/functions/tools/rigify_converter.py b/functions/tools/rigify_converter.py index 8737454..e59c817 100644 --- a/functions/tools/rigify_converter.py +++ b/functions/tools/rigify_converter.py @@ -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'} diff --git a/functions/tools/standardize_armature.py b/functions/tools/standardize_armature.py index f7ad52a..9860a8d 100644 --- a/functions/tools/standardize_armature.py +++ b/functions/tools/standardize_armature.py @@ -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: diff --git a/functions/tools/uv_tools.py b/functions/tools/uv_tools.py index e7dcc5d..5bd19e5 100644 --- a/functions/tools/uv_tools.py +++ b/functions/tools/uv_tools.py @@ -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) diff --git a/functions/visemes.py b/functions/visemes.py index da332bc..df6b83b 100644 --- a/functions/visemes.py +++ b/functions/visemes.py @@ -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'} diff --git a/ui/atlas_materials_panel.py b/ui/atlas_materials_panel.py index 8f8c056..08579b3 100644 --- a/ui/atlas_materials_panel.py +++ b/ui/atlas_materials_panel.py @@ -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'}