2014-09-04 95 views
1

我正在尝试Python日志记录。Python记录器,打印子记录器%(姓名)没有父名

因为我想要一些记录器共享格式化程序,所以我使用类似于下面的代码的日志记录层次结构。

正如你所看到的,格式为'%(asctime)s - %(name)s - %(message)s'

在这一点上,我想记录仪打印%(name)s部分无父名称。

我的意思是,通常它会打印的名字为'SYS.Start Up Routine'但我想'Start Up Routine'

有什么办法?

logging.root.level = logging.DEBUG 
logger = logging.getLogger('SYS') 
logger.setLevel(logging.DEBUG) 

formatter = logging.Formatter('%(asctime)s - %(name)s - %(message)s') 

streamHandler = logging.StreamHandler() 
streamHandler.setFormatter(formatter) 
logger.addHandler(streamHandler) 

logger1 = logging.getLogger("SYS.Start Up Routine") 
logger2 = logging.getLogger("SYS.Message Layer") 
logger3 = logging.getLogger("SYS.Application Layer") 

回答

1

如果你想要的名字说的,而不是“foo.bar”酒吧',只要登录到一个名为“酒吧”记录仪,并添加处理程序的根记录。

+0

此解决方案有一个值得注意的警告:像这样更改记录器名称不允许对记录器进行分组并配置它们(使用父记录器名称)。 – jjmontes 2017-10-26 12:46:12