sna*_*erb 12
如果没有filename参数传递给logging.basicconfig,它将配置一个StreamHandler. 如果stream传递一个参数,logging.basicconfig它将传递该参数,StreamHandler否则StreamHandler默认为 using,如StreamHandler 文档sys.stderr所示
类logging.StreamHandler(流=无)
返回 StreamHandler 类的新实例。如果指定了stream,实例将使用它来记录输出;否则,将使用 sys.stderr。
和源代码:
class StreamHandler(Handler):
"""
A handler class which writes logging records, appropriately formatted,
to a stream. Note that this class does not close the stream, as
sys.stdout or sys.stderr may be used.
"""
def __init__(self, stream=None):
"""
Initialize the handler.
If stream is not specified, sys.stderr is used.
"""
Handler.__init__(self)
if stream is None:
stream = sys.stderr
self.stream = stream
Run Code Online (Sandbox Code Playgroud)
显然,默认值为stderr。
快速检查:使用一个最小的示例
import logging
logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.INFO)
logger.info("test")
Run Code Online (Sandbox Code Playgroud)
并运行它会生成python test.py 1> /tmp/log_stdout 2> /tmp/log_stderr一个空的stdout文件,但会生成一个非空的stderr文件。