Python 日志模块在 Mac 上正常,但在 Linux 上不工作

1 投票
1 回答
1300 浏览
提问于 2025-04-16 10:31

我遇到了一个问题,我在我的应用程序中使用了日志模块。我是在我的MacBook Pro上,使用Eclipse和LDT Python(Python 2.7)接口(不是Pydev)进行开发的。日志模块在Eclipse中运行得很好;但是,当我把我的应用程序转移到RHEL5 2.7上时,日志似乎完全不工作。它没有抛出任何异常,只是没有在控制台或文件中记录任何内容(虽然它确实创建了文件)。

代码:

# Initialize logging
log = logging.getLogger('pepPrep')
# Log to stderr
console = logging.StreamHandler() 
console.setLevel(logging.INFO)
# Log to file
logname = 'pepPrep.' + datetime.datetime.now().strftime("%Y%m%d_%H:%M") + '.log'
filelog = logging.FileHandler(logname)
filelog.setLevel(logging.DEBUG)
# set a format
formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s')
# tell the handler to use this format
console.setFormatter(formatter)
filelog.setFormatter(formatter)
# add the handler to the root logger
log.addHandler(console)
log.addHandler(filelog)

log.INFO('This is a test')
log.DEBUG('This is a test2')

有没有什么建议可以让我解决这个问题?

1 个回答

3

默认情况下,日志记录的阈值是 WARNING,这意味着 INFODEBUG 的信息默认是不会显示的。如果你想看到这些信息,可以添加例如:

logging.getLogger().setLevel(logging.DEBUG)

这样就可以看到 DEBUGINFO 的信息了。

你可以通过以下方式确认这就是你的问题:

log.warning('This is a test3')

在添加那个 setLevel 之前,先确认一下警告信息是否真的有输出。

撰写回答