如何在python中使用for循环记录到不同的日志文件



我正在编写python脚本,该脚本使用paramiko建立ssh连接,并接收在不同网元上执行的不同命令的响应,并将每个网元的日志写入不同的日志文件中。我正在使用下面的代码,在其中我定义了记录器主函数,并将日志写入同一类中的其他函数。它在写入单个日志文件时运行良好。请让我知道如何为不同的网元编写不同的日志文件。

代码:

def main(self):

global logger

with open(self.hostfile, 'r') as ip:
ip_list = ip.read().splitlines()
for host in ip_list:
filename = "connection_debug-{0}.log".format(host)
print('filename is:', filename)
logging.basicConfig(filename=filename,
format='%(asctime)s %(message)s',
filemode='w')
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)


def send_to_ne(self, command, prompt):
channel.send('%s n' % command)
while not channel.recv_ready():
time.sleep(2)
#self.get_channel_ready()
global response
response = " "
while not response.endswith(prompt):
received_result = channel.recv(9999)
logger.debug(received_result.decode())
#self.logging_func(received_result, host)
received_result = str(received_result)

这是上面问题的答案

def debug_file(self, debugfile):
global logger
logger = logging.getLogger(debugfile)
logger.setLevel(logging.DEBUG)
log_format = logging.Formatter('%(asctime)s %(message)s')
debug = logging.FileHandler(debugfile, mode='w')
debug.setFormatter(log_format)
logger.addHandler(debug)
debugfile = "connection_debug-{0}.log".format(host)
self.debug_file(debugfile)

最新更新