鉴于以下项目结构:
/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)
一切都很简单,完美无缺。 但是,如果我想同时拥有这两个选项呢? 这是控制台中的输出和保存到内存的文件。我怎么能这样做?
答案 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。
希望有所帮助。