我正在尝试使用logging.conf文件配置记录器,但出现错误, 在代码中,我试图用动态路径包含时间戳文件夹替换conf文件中的文件路径 下面是我的代码
python模块来配置日志-
class LogHandler:
logger = None
def __init__(self,file_path):
conf_path = os.path.dirname(os.getcwd())+"\\config\\log_config.conf"
#Setting the log file path to configuration file
with open(conf_path,'r') as file:
content = file.readlines()
file_path = file_path.replace("\\", "\\\\")
print(file_path)
for line_no in range(len(content)):
if re.search("args=\('.*',", content[line_no]):
content[line_no] = "args=('" + file_path + "','a')\n"
break
file.close()
with open(conf_path,'w') as file:
file.write(''.join(content))
file.close()
logging.config.fileConfig(conf_path)
LogHandler.logger = logging.getLogger("root")
LogHandler.logger.info("Testing")
@staticmethod
def getLogger():
return LogHandler.logger
配置的logging.conf模块-
[loggers]
keys=root
[handlers]
keys=consoleHandler
[formatters]
keys=sampleFormatter
[logger_root]
level=DEBUG
handlers=consoleHandler
[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=sampleFormatter
args=('C:\\Users\\vipin\\PycharmProjects\\PythonBehaveFramework\\output\\201912100840\\output.log','a')
[formatter_sampleFormatter]
format=%(asctime)s : %(lineno)s - %(funcName)s - %(levelname)s - %(message)s
错误-
Traceback (most recent call last):
File "C:/Users/vipin/PycharmProjects/PythonBehaveFramework/Features/test.py", line 8, in <module>
LogHandler.getInstance("C:\\Users\\vipin\\PycharmProjects\\PythonBehaveFramework\\output\\output.log")
File "C:\Users\vipin\PycharmProjects\PythonBehaveFramework\src\framework\LogHandler.py", line 28, in getInstance
LogHandler(filename)
File "C:\Users\vipin\PycharmProjects\PythonBehaveFramework\src\framework\LogHandler.py", line 50, in __init__
logging.config.fileConfig(conf_path)
File "C:\Users\vipin\AppData\Local\Programs\Python\Python36-32\lib\logging\config.py", line 84, in fileConfig
handlers = _install_handlers(cp, formatters)
File "C:\Users\vipin\AppData\Local\Programs\Python\Python36-32\lib\logging\config.py", line 148, in _install_handlers
h = klass(*args)
TypeError: __init__() takes from 1 to 2 positional arguments but 3 were given
handler_consoleHandler
的配置不一致fileConfig
基于指定的class
创建一个^{self
)指定的} resp。其子类,即指定日志文件路径和模式。
args
属于^{这会将两个位置参数传递给
StreamHandler
初始值设定项,从而导致TypeError如果要登录到文件,请将处理程序的类更改为
FileHandler
或其任何派生类。如果确实要登录到控制台,可以完全删除
args
以保持默认的stderr,或者指定您想要的其他流,例如args=(sys.stdout,)
您希望处理程序改为登录到stdout相关问题 更多 >
编程相关推荐