feat(logging): implement log pruning functionality

- Add LogPruneService to handle the deletion of old logs based on retention settings.
- Create PruneLogsCommand to provide a console command for log pruning.
- Introduce PruneLogsMessage and PruneLogsHandler for message handling related to log pruning.
- Update the AST cache with new classes and their relationships.
This commit is contained in:
hamed
2026-07-01 21:50:51 +03:30
parent a31e8b4314
commit 7814bcc0de
27 changed files with 1667 additions and 802 deletions
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"nodes": [{"id": "users_hamed_pj_my_pj_clinic_pro_clinicpro_src_shared_logging_messagehandler_prunelogshandler_php", "label": "PruneLogsHandler.php", "file_type": "code", "source_file": "src/Shared/Logging/MessageHandler/PruneLogsHandler.php", "source_location": "L1"}, {"id": "messagehandler_prunelogshandler_prunelogshandler", "label": "PruneLogsHandler", "file_type": "code", "source_file": "src/Shared/Logging/MessageHandler/PruneLogsHandler.php", "source_location": "L9"}, {"id": "messagehandler_prunelogshandler_prunelogshandler_construct", "label": ".__construct()", "file_type": "code", "source_file": "src/Shared/Logging/MessageHandler/PruneLogsHandler.php", "source_location": "L12"}, {"id": "messagehandler_prunelogshandler_prunelogshandler_invoke", "label": ".__invoke()", "file_type": "code", "source_file": "src/Shared/Logging/MessageHandler/PruneLogsHandler.php", "source_location": "L14"}, {"id": "prunelogsmessage", "label": "PruneLogsMessage", "file_type": "code", "source_file": "src/Shared/Logging/MessageHandler/PruneLogsHandler.php", "source_location": "L14"}], "edges": [{"source": "users_hamed_pj_my_pj_clinic_pro_clinicpro_src_shared_logging_messagehandler_prunelogshandler_php", "target": "logpruneservice", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "src/Shared/Logging/MessageHandler/PruneLogsHandler.php", "source_location": "L5", "weight": 1.0}, {"source": "users_hamed_pj_my_pj_clinic_pro_clinicpro_src_shared_logging_messagehandler_prunelogshandler_php", "target": "prunelogsmessage", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "src/Shared/Logging/MessageHandler/PruneLogsHandler.php", "source_location": "L6", "weight": 1.0}, {"source": "users_hamed_pj_my_pj_clinic_pro_clinicpro_src_shared_logging_messagehandler_prunelogshandler_php", "target": "asmessagehandler", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "src/Shared/Logging/MessageHandler/PruneLogsHandler.php", "source_location": "L7", "weight": 1.0}, {"source": "users_hamed_pj_my_pj_clinic_pro_clinicpro_src_shared_logging_messagehandler_prunelogshandler_php", "target": "messagehandler_prunelogshandler_prunelogshandler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "src/Shared/Logging/MessageHandler/PruneLogsHandler.php", "source_location": "L9", "weight": 1.0}, {"source": "messagehandler_prunelogshandler_prunelogshandler", "target": "messagehandler_prunelogshandler_prunelogshandler_construct", "relation": "method", "confidence": "EXTRACTED", "source_file": "src/Shared/Logging/MessageHandler/PruneLogsHandler.php", "source_location": "L12", "weight": 1.0}, {"source": "messagehandler_prunelogshandler_prunelogshandler", "target": "messagehandler_prunelogshandler_prunelogshandler_invoke", "relation": "method", "confidence": "EXTRACTED", "source_file": "src/Shared/Logging/MessageHandler/PruneLogsHandler.php", "source_location": "L14", "weight": 1.0}, {"source": "messagehandler_prunelogshandler_prunelogshandler_invoke", "target": "prunelogsmessage", "relation": "references", "confidence": "EXTRACTED", "source_file": "src/Shared/Logging/MessageHandler/PruneLogsHandler.php", "source_location": "L14", "weight": 1.0, "context": "parameter_type"}], "raw_calls": [{"caller_nid": "messagehandler_prunelogshandler_prunelogshandler_invoke", "callee": "pruneByRetention", "is_member_call": true, "source_file": "/Users/hamed/pj/my_pj/clinic_pro/clinicpro/src/Shared/Logging/MessageHandler/PruneLogsHandler.php", "source_location": "L16", "receiver": null}]}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"nodes": [{"id": "users_hamed_pj_my_pj_clinic_pro_clinicpro_src_shared_logging_logpruneservice_php", "label": "LogPruneService.php", "file_type": "code", "source_file": "src/Shared/Logging/LogPruneService.php", "source_location": "L1"}, {"id": "logging_logpruneservice_logpruneservice", "label": "LogPruneService", "file_type": "code", "source_file": "src/Shared/Logging/LogPruneService.php", "source_location": "L11"}, {"id": "logging_logpruneservice_logpruneservice_construct", "label": ".__construct()", "file_type": "code", "source_file": "src/Shared/Logging/LogPruneService.php", "source_location": "L13"}, {"id": "logging_logpruneservice_logpruneservice_prunebyretention", "label": ".pruneByRetention()", "file_type": "code", "source_file": "src/Shared/Logging/LogPruneService.php", "source_location": "L19"}], "edges": [{"source": "users_hamed_pj_my_pj_clinic_pro_clinicpro_src_shared_logging_logpruneservice_php", "target": "siteconfigrepository", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "src/Shared/Logging/LogPruneService.php", "source_location": "L5", "weight": 1.0}, {"source": "users_hamed_pj_my_pj_clinic_pro_clinicpro_src_shared_logging_logpruneservice_php", "target": "logging_logpruneservice_logpruneservice", "relation": "contains", "confidence": "EXTRACTED", "source_file": "src/Shared/Logging/LogPruneService.php", "source_location": "L11", "weight": 1.0}, {"source": "logging_logpruneservice_logpruneservice", "target": "logging_logpruneservice_logpruneservice_construct", "relation": "method", "confidence": "EXTRACTED", "source_file": "src/Shared/Logging/LogPruneService.php", "source_location": "L13", "weight": 1.0}, {"source": "logging_logpruneservice_logpruneservice", "target": "logging_logpruneservice_logpruneservice_prunebyretention", "relation": "method", "confidence": "EXTRACTED", "source_file": "src/Shared/Logging/LogPruneService.php", "source_location": "L19", "weight": 1.0}], "raw_calls": [{"caller_nid": "logging_logpruneservice_logpruneservice_prunebyretention", "callee": "get", "is_member_call": true, "source_file": "/Users/hamed/pj/my_pj/clinic_pro/clinicpro/src/Shared/Logging/LogPruneService.php", "source_location": "L21", "receiver": null}, {"caller_nid": "logging_logpruneservice_logpruneservice_prunebyretention", "callee": "time", "is_member_call": false, "source_file": "/Users/hamed/pj/my_pj/clinic_pro/clinicpro/src/Shared/Logging/LogPruneService.php", "source_location": "L26", "receiver": null}, {"caller_nid": "logging_logpruneservice_logpruneservice_prunebyretention", "callee": "deleteOlderThan", "is_member_call": true, "source_file": "/Users/hamed/pj/my_pj/clinic_pro/clinicpro/src/Shared/Logging/LogPruneService.php", "source_location": "L28", "receiver": null}]}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_hamed_pj_my_pj_clinic_pro_clinicpro_src_shared_logging_message_prunelogsmessage_php", "label": "PruneLogsMessage.php", "file_type": "code", "source_file": "src/Shared/Logging/Message/PruneLogsMessage.php", "source_location": "L1"}, {"id": "message_prunelogsmessage_prunelogsmessage", "label": "PruneLogsMessage", "file_type": "code", "source_file": "src/Shared/Logging/Message/PruneLogsMessage.php", "source_location": "L5"}], "edges": [{"source": "users_hamed_pj_my_pj_clinic_pro_clinicpro_src_shared_logging_message_prunelogsmessage_php", "target": "message_prunelogsmessage_prunelogsmessage", "relation": "contains", "confidence": "EXTRACTED", "source_file": "src/Shared/Logging/Message/PruneLogsMessage.php", "source_location": "L5", "weight": 1.0}], "raw_calls": []}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long