Python 当我尝试使用logger.getChild()方法获取子记录器时,日志处理程序将消失

Python 当我尝试使用logger.getChild()方法获取子记录器时,日志处理程序将消失,python,python-3.x,logging,Python,Python 3.x,Logging,我有一个根记录器,上面有一些处理程序(比如SysLogHandler) 我想通过调用logger.getChild(\uuuu name\uuuu)从根记录器获取一个子记录器,但是当我这样做时,我得到了一个没有处理程序的新记录器。我做错了什么? 谢谢 导入日志 从日志记录导入处理程序 sysh=handlers.SysLogHandler() logger=logging.getLogger() logger.addHandler(sysh) logger.handlers#[]-一切正常 c=

我有一个根记录器,上面有一些处理程序(比如SysLogHandler)

我想通过调用
logger.getChild(\uuuu name\uuuu)
从根记录器获取一个子记录器,但是当我这样做时,我得到了一个没有处理程序的新记录器。我做错了什么? 谢谢

导入日志
从日志记录导入处理程序
sysh=handlers.SysLogHandler()
logger=logging.getLogger()
logger.addHandler(sysh)
logger.handlers#[]-一切正常
c=logger.getChild('some_name')
c、 处理程序#[]父(根)记录器中的处理程序(SysLogHandler)在哪里???
所做的事情与之相同。两者都调用实例上的方法。
管理器要么返回已在其
loggerDict
属性中注册的现有记录器,要么实例化新记录器,注册并返回它。在后一种情况下,新记录器必须由调用方配置

不是要创建调用它的记录器的克隆。其目的是:

[…]一种方便的方法,在使用 e、 g.
\uuuu name\uuuuu
而不是文字字符串


谢谢。但是我对获取分配给根记录器的处理程序感兴趣?有什么合适的方法可以做到这一点吗?@Dinsultan我想你可以选择:
c.handlers=logger.handlers
或者稍微详细一点,并保留你以前可能添加的专用处理程序:
用于logger.handlers中的处理程序:c.handlers.append(handler)
。但是要注意,如果将子级设置为(默认)。哦,或者logger.handlers:c.addHandler(handler)中的handler的
,则会创建重复的日志事件。