记录器为什么没有记录自己的名字?

bru*_*yne 0 python logging

我试图复制以下代码段中发生的情况.在这里,我有两个不同的记录器尝试记录一些信息.

每个都配置为将日志记录信息打印到控制台.代码的问题是它没有在消息之前打印记录器的名称,这里出了什么问题?

import logging
import sys

ch = logging.StreamHandler(sys.stdout)
ch.setLevel(logging.DEBUG)

logger1 = logging.getLogger("logger1")
logger1.setLevel(logging.DEBUG)
logger1.addHandler(ch)

logger2 = logging.getLogger("logger2")
logger2.setLevel(logging.DEBUG)
logger2.addHandler(ch)

logger1.debug('log statement')
logger2.debug('log statement')
Run Code Online (Sandbox Code Playgroud)

我得到的输出是,

log statement
log statement
Run Code Online (Sandbox Code Playgroud)

我期待的是

logger1: log statement
logger2: log statement
Run Code Online (Sandbox Code Playgroud)

Gsk*_*Gsk 5

您可能希望向StreamHandler添加格式化程序:

import logging
import sys

ch = logging.StreamHandler(sys.stdout)
ch.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
ch.setFormatter(formatter)

logger1 = logging.getLogger("logger1")
logger1.setLevel(logging.DEBUG)
logger1.addHandler(ch)

logger2 = logging.getLogger("logger2")
logger2.setLevel(logging.DEBUG)
logger2.addHandler(ch)

logger1.debug('log statement')
logger2.debug('log statement')
Run Code Online (Sandbox Code Playgroud)

如果您希望logger1和logger2的行为不同,您可以创建2个不同的StreamHandler