اذهب إلى المحتوى

السؤال

نشر

أستخدم وحدة logging في بايثون وأريد تعطيل كونسول التسجيل لمدة معينة لكنني لم أنجح في فعل ذلك:

  #!/usr/bin/python
  import logging

  logger = logging.getLogger() # this gets the root logger
  # ... here I add my own handlers
  #logger.removeHandler(sys.stdout)
  #logger.removeHandler(sys.stderr)

  print logging.handlers
  # this will print [<logging.StreamHandler instance at ...>]
  # but I may have other handlers there that I want to keep

  logger.debug("bla bla")

أحتاج إلى تعطيل هذه الوحدة لمدة معينة ومن ثم إعادة تفعيلها فما أسهل طريقة لفعل ذلك؟

Recommended Posts

  • 0
نشر

هنالك عدّة طرق لتفعيل وتعطيل تسجيل الكونسول في لغة بايثون، وهذه الطرق تتباين من ناحية آلية عملها فيمكنك على سبيل المثال استخدام متغير propagate وجعله False حيث سيمنع هذا إرسال التسجيلات إلى السجلات الأعلى والتي تتضمن تسجيلات الكونسول كما في المثال التالي:

logger = logging.getLogger('my-logger')
logger.propagate = False
# now if you use logger it will not log to console.

أو يمكنك تعطيل خاصية disabled لدالة getlogger() من وحدة logging وجعلها true لتعطيل التسجيل وfalse لتفعيله مرة أخرى كما في المثال التالي:

logger = logging.getLogger()
logger.disabled = True
... whatever you want ...
logger.disabled = False

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...