在 Python 2.4 及更高版本中,将日志记录模块配置为具有更基本的格式很容易:
logging.basicConfig(level=opts.LOGLEVEL, format="%(message)s")
但是对于需要支持 Python 2.3 的应用程序来说,这似乎更加困难,因为在 Py2.4 中对日志记录 API 进行了大修。特别是, basicConfig 不接受任何参数。尝试对 Py2.3 文档中的唯一示例进行变体,我得到了这个:
try:
logging.basicConfig(level=opts.LOGLEVEL, format="%(message)s")
except:
logging.getLogger().setLevel(opts.LOGLEVEL)
h = logging.StreamHandler()
h.setFormatter(logging.Formatter("%(message)s"))
logging.getLogger().addHandler(h)
但是在 Py2.3 中调用这个根记录器,例如
logging.info("Foo")
给出重复的输出:
Foo
INFO:root:Foo
我找不到修改 Py2.3 中根记录器上现有处理程序格式的方法(上面的“except”块),因此产生重复输出的“addHandler”调用。有没有办法在没有这种重复的情况下设置根记录器的格式?谢谢!