filename
参数给logging.basicConfig,它会配置一个StreamHandler
。如果向logging.basicConfig
传递了一个stream
参数,它将传递给StreamHandler
,否则StreamHandler
默认使用sys.stderr
,可以在StreamHandler文档中看到。
并且源代码:class logging.StreamHandler(stream=None)
返回一个StreamHandler类的新实例。 如果指定了流,则该实例将使用它进行日志记录输出; 否则将使用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
显然默认是标准错误(stderr)。
快速检查:使用一个最小化的示例
import logging
logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.INFO)
logger.info("test")
使用 python test.py 1> /tmp/log_stdout 2> /tmp/log_stderr
运行时,标准输出文件为空,但标准错误输出文件不为空。