fix_ctp111234
This commit is contained in:
parent
ff6c20d946
commit
f9450cc788
|
|
@ -26,7 +26,7 @@ class CtpDatabaseCleanUp(models.TransientModel):
|
|||
_logger.info('Attempting to TRUNCATE table for model: %s (table: %s)', line, table_name)
|
||||
|
||||
safe_table_name = table_name.replace('"', '""')
|
||||
sql = 'TRUNCATE TABLE "%s" RESTART IDENTITY CASCADE' % safe_table_name
|
||||
sql = 'DELETE FROM "%s"' % safe_table_name
|
||||
self._cr.execute(sql)
|
||||
|
||||
except Exception as e:
|
||||
|
|
|
|||
|
|
@ -1,24 +1,21 @@
|
|||
import logging
|
||||
from odoo import api, models
|
||||
|
||||
# استخدام المسجل القياسي لإضافة رسائل تصحيح خاصة بهذا الموديول
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class MemoryLogHandler(logging.Handler):
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self.max_entries = 10000 # الاحتفاظ بآخر 10000 سجل
|
||||
self.max_entries = 10000
|
||||
self.entries = []
|
||||
|
||||
def emit(self, record):
|
||||
# تجنب تسجيل الطلبات القادمة من العارض نفسه لمنع حلقة لا نهائية
|
||||
if '/log_viewer/get_logs' in getattr(record, 'message', ''):
|
||||
return
|
||||
|
||||
self.entries.append(self.format(record))
|
||||
|
||||
# إزالة أقدم سجل إذا تجاوزنا الحد الأقصى
|
||||
if len(self.entries) > self.max_entries:
|
||||
self.entries.pop(0)
|
||||
|
||||
|
|
@ -27,31 +24,24 @@ class LogHandlerManager(models.AbstractModel):
|
|||
_name = 'log.handler.manager'
|
||||
_description = 'Log Handler Manager'
|
||||
|
||||
# سنحتفظ بالمعالج كمتغير على مستوى الكلاس لضمان وجود نسخة واحدة فقط
|
||||
_memory_handler = None
|
||||
|
||||
@api.model
|
||||
def _get_memory_handler(self):
|
||||
# هذه الدالة الآن أصبحت أبسط، فقط تعيد المعالج الموجود
|
||||
return LogHandlerManager._memory_handler
|
||||
|
||||
@api.model
|
||||
def _register_hook(self):
|
||||
# هذه الدالة تُستدعى عند تحميل سجل الموديلات في أودو
|
||||
if LogHandlerManager._memory_handler is None:
|
||||
_logger.info("Initializing MemoryLogHandler for Odoo Log Viewer.")
|
||||
|
||||
# 1. إنشاء معالج السجلات الخاص بنا
|
||||
handler = MemoryLogHandler()
|
||||
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
|
||||
handler.setFormatter(formatter)
|
||||
|
||||
# 2. الحصول على مسجل الجذر وإضافة معالجنا إليه
|
||||
root_logger = logging.getLogger()
|
||||
root_logger.addHandler(handler)
|
||||
|
||||
# 3. !! التغيير الرئيسي هنا !!
|
||||
# ضبط المستوى على INFO لتجاهل رسائل DEBUG المزعجة.
|
||||
if root_logger.level > logging.INFO:
|
||||
root_logger.setLevel(logging.INFO)
|
||||
|
||||
|
|
@ -62,6 +52,5 @@ class LogHandlerManager(models.AbstractModel):
|
|||
def get_log_entries(self):
|
||||
handler = self._get_memory_handler()
|
||||
if handler:
|
||||
# إرجاع نسخة من القائمة لتجنب المشاكل المتعلقة بالتزامن
|
||||
return list(handler.entries)
|
||||
return []
|
||||
|
|
|
|||
Loading…
Reference in New Issue