0
在舊的Zope模塊中,我在_ init _py中找到了函數add_file_logging()。Python日誌記錄級別
With logger2我試着記錄一些INFOS,關卡在add_file_logging()中設置爲DEBUG。但是INFOS沒有記錄到文件中。錯誤記錄到文件中。但函數add_file_logging()必須在記錄錯誤時執行。但日誌記錄級別必須是問題,而不是設置。
與logger1我做了同樣的 - 相同的代碼 - 與類本身的函數set_logger()它只是工作正常。
所以我想知道,爲什麼同樣的方法不能正常工作時,它被導入。有人可以解釋我的區別嗎?
那將是非常好的;-)
myhelper.tools/src/myhelper/tools/worker.py
import os
import sys
import logging
import logging.handlers
from myhelper.tools import add_file_logging
logger1 = logging.getLogger('myLogger1')
logger2 = logging.getLogger('myLogger2')
class Worker(object):
def __init__(self):
self.to_delete = False
...
def set_logger (self, logger, logfile):
logger.setLevel(logging.DEBUG)
handler = logging.FileHandler(logfile)
handler.setLevel(logging.DEBUG)
logger.addHandler(handler)
def run(self):
self.set_logger(logger1, os.path.dirname(__file__) + "logger1.log")
add_file_logging(logger2, os.path.dirname(__file__) + "logger2.log")
...
def main():
work = XmlWorker()
work.run()
myhelper.tools/src/myhelper/tools/ 初始化。 PY
的初始化的.py下劃線刪除,自動向init.py ;-)
# -*- coding: utf-8 -*-
import logging
import logging.handlers
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s %(levelname)-8s %(message)s',
datefmt='%a, %d %b %Y %H:%M:%S')
class AboveInfoFilter(logging.Filter):
def filter(self, record):
return record.levelno > 20
def add_file_logging (logger, logfile):
logger.setLevel(logging.DEBUG)
handler = logging.FileHandler(logfile)
handler.setLevel(logging.DEBUG)
logger.addHandler(handler)
你確定'AboveInfoFilter'沒有被應用嗎?我認爲這只是你的'myhelper/tools/__ init __。py'的一部分。 –
是的,我從add_file_loggin()中刪除了它的集成。之前有一行logfileHndl.addFilter(AboveInfoFilter()) – surfi