全局日志记录并将日志保存到文件

时间:2014-04-04 15:32:48

标签: python logging

鉴于以下项目结构:

/package1
   __ini__.py 
   module1.py
   module2.py

main.py

其中 main.py 文件导入包内的模块并使用这些模块。

为了记录所有操作,包括 module1.py module2.py 中的操作,我只需在 main.py中添加以下行

import logging

logging.basicConfig(format=FORMAT, datefmt='%H:%M:%S', level=log.INFO)

这很有效。如果我想将日志存储在文件中,那么:

logging.basicConfig(filename=logname, format=FORMAT, datefmt='%H:%M:%S', level=log.INFO)

一切都很简单,完美无缺。 但是,如果我想同时拥有这两个选项呢? 这是控制台中的输出和保存到内存的文件。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

基本上,您需要定义logger,创建两个handlers:一个用于console,另一个用于file,并将处理程序附加到记录器:< / p>

import logging

logger = logging.getLogger('my_logger')

formatter = logging.Formatter(FORMAT)

console_handler = logging.StreamHandler()
console_handler.setFormatter(formatter)
logger.addHandler(console_handler)

file_handler = logging.FileHandler(logname)
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)

查看更多示例here

希望有所帮助。