我使用curses为我的应用程序创建了一个简单的用户界面,并在我的模块中使用层次结构(logmain,logmain.child1等)包含日志(logging)。
如果发生日志事件,该日志将显示在我的UI中,破坏其外观。我还创建了一个pad(myLogPad),以便在其中放置传入的日志,但没有成功。如何拦截日志事件并将其打印在屏幕特定区域(最后一行)中?
def setupLogger(name,file_name):
logger = logging.getLogger(name)
logger.setLevel(logging.DEBUG)
#formatter = logging.Formatter(
# "%(asctime)s %(threadName)-11s %(levelname)-10s %(message)s")
formatter = logging.Formatter('%(asctime) -25s - %(name) -15s - %(levelname) -10s - %(message)s')
formatterDisplay = logging.Formatter('%(asctime)-8s|%(name)-12s|%(levelname)-6s|%(message)-s', '%H:%M:%S')
# Alternative formatting available on python 3.2+:
# formatter = logging.Formatter(
# "{asctime} {threadName:>11} {levelname} {message}", style='{')
# Log to file
filehandler = logging.FileHandler(file_name, 'w')
filehandler.setFormatter(formatter)
logger.addHandler(filehandler)
# Log to stdout too
streamhandler = logging.StreamHandler()
streamhandler.setFormatter(formatterDisplay)
logger.addHandler(streamhandler)
我尝试在streamhandler = logging.StreamHandler()中传递我的日志记录器,但没有成功。有什么想法吗?谢谢