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