我已经阅读了日志记录模块文档,虽然我可能错过了一些明显的东西,但我得到的代码似乎没有按预期工作.我正在使用Python 2.6.4.
我的程序包含几个不同的python文件,我想从中将日志消息发送到文本文件,可能还有屏幕.我想这是常见的事情,所以我在某处弄乱了.
我的代码在一分钟做的是正确地记录到文本文件,有点.但是正在复制登录到屏幕,一个具有指定的格式,一个没有.此外,当我关闭屏幕输出时,我仍然打印一次文本,这是我不想要的 - 我只是想将它记录到文件中.
无论如何,一些代码:
#logger.py
import logging
from logging.handlers import RotatingFileHandler
import os
def setup_logging(logdir=None, scrnlog=True, txtlog=True, loglevel=logging.DEBUG):
logdir = os.path.abspath(logdir)
if not os.path.exists(logdir):
os.mkdir(logdir)
log = logging.getLogger('stumbler')
log.setLevel(loglevel)
log_formatter = logging.Formatter("%(asctime)s - %(levelname)s :: %(message)s")
if txtlog:
txt_handler = RotatingFileHandler(os.path.join(logdir, "Stumbler.log"), backupCount=5)
txt_handler.doRollover()
txt_handler.setFormatter(log_formatter)
log.addHandler(txt_handler)
log.info("Logger initialised.")
if scrnlog:
console_handler = logging.StreamHandler()
console_handler.setFormatter(log_formatter)
log.addHandler(console_handler)
Run Code Online (Sandbox Code Playgroud)
没有什么不寻常的.
#core.py
import logging
corelog = logging.getLogger('stumbler.core') # From what I understand of the docs, this should work :/
class Stumbler:
[...] …Run Code Online (Sandbox Code Playgroud)