gpt4 book ai didi

python - 问题的扩展 "Python logging multiple files using the same logger"

转载 作者:行者123 更新时间:2023-11-28 18:56:58 25 4
gpt4 key购买 nike

这是 query 的扩展.

我在配置文件中发现的错误是通过使用记录器,在任何时候都创建了 ws_in_.logws_out_.log 文件,即使它们在不同的处理程序下,适用于不同的流程。我的意思是,如果我运行 IN 进程,则相应的 IN 日志将记录在 ws_in.log 文件中。但同时还创建了一个空的 ws_out.log 文件。

那么有什么方法可以限制为各个进程创建日志文件。请帮忙。

感谢和问候 Pragyan

[loggers]
keys=root, ws_in_log, ws_out_log

[handlers]
keys=consoleHandler, ws_in_hand, ws_out_hand

[formatters]
keys=generic_form

[loggers]
keys=root, ws_in_log, ws_out_log

[handlers]
keys=consoleHandler, ws_in_hand, ws_out_hand

[formatters]
keys=generic_form

[logger_root]
handlers=consoleHandler
level=NOTSET

[logger_ws_in_log]
level=NOTSET
handlers=ws_in_hand
qualname=ws_in_log

[logger_ws_out_log]
level=NOTSET
handlers=ws_out_hand
qualname=ws_out_log

[handler_ws_in_hand]
class=logging.handlers.TimedRotatingFileHandler
level=NOTSET
formatter=generic_form
args=('/path/ws_in_.log', 'h', 1, 0, None, False, True)

[handler_ws_out_hand]
class=logging.handlers.TimedRotatingFileHandler
level=NOTSET
formatter=generic_form
args=('/path/em/ws_out_.log', 'h', 1, 0, None, False, True)

[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=generic_form
args=(sys.stdout,)

[formatter_generic_form]
format='%(asctime)s - %(levelname)s - %(message)s'
datefmt='%Y-%m-%d %H:%M:%S'
class=

我正在通过 scrpit IN.py 使用上述配置文件,

import logging.config

logging.config.fileConfig('x.ini')
logger=logging.getLogger('ws_in_log')
class Car(object):
def __init__(self,brand,model,color):
self.brand = brand
self.model = model
self.color = color

def drive(self):
self.condition = 'Used'
print("in drive")
def drive(msg):
logger.debug("in script function")
logger.debug(msg)

Expected : only "ws_in_.log" file shoud be created if "IN" script get called.
Actual: Both "ws_in_.log" and "ws_out_.log" files are getting created if only "IN" script get called.

最佳答案

解决此问题的一种方法是将 logging.handlers.TimedRotatingFileHandler 替换为仅在收到消息以记录到文件时才打开或创建文件的版本。

另一种是只接受空文件的创建。

logging.handlers.TimedRotatingFileHandler 的实现会在创建实例时创建日志文件(如果日志文件不存在)。

关于python - 问题的扩展 "Python logging multiple files using the same logger",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57214111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com