Python-如何在每次FOR迭代中更改UUID



我希望这是一个简单的修复,我只是瞎了眼。我写这个脚本是为了处理一些数据,但我无法更改这个UUID值。

在脚本开始时,我在FOR循环中声明UUID值,以便在每次迭代中定义该值:

from uuid import uuid4 as uid
...
for entry in df.loc():
uuid = uid()
...
logs(uuid, text)
uuid = None

但是,当脚本运行时,它没有打印新的UUID(这是我所期望的,因为在每次迭代中都定义了变量(,而是无限期地打印相同的UUID。正如你所看到的,我尝试在最后添加UUID等于none来尝试捕获这个,但没有成功。

这是我的日志记录功能:

import logging, os
#import uuid
direc = os.path.dirname(__file__)
def logs(uuid: str, message: str):
formatter = logging.Formatter('[%(asctime)s] [{}] [%(levelname)s] | %(message)s'.format(uuid))
file_handler = logging.FileHandler(os.path.join(direc, "main.log"))
file_handler.setLevel(logging.INFO)
file_handler.setFormatter(formatter)
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.INFO)
console_handler.setFormatter(formatter)
logger = logging.getLogger()
if not logger.handlers:
logger.addHandler(file_handler)
logger.addHandler(console_handler)
logger.setLevel(logging.INFO)
logger.info(message)
return logger

输出:

[2021-05-05 08:24:25,288] [1cbb447f-df61-490f-990b-3c18d1b465e3] [INFO] | Name Match...
[2021-05-05 08:24:25,291] [1cbb447f-df61-490f-990b-3c18d1b465e3] [INFO] | Number Match...
[2021-05-05 08:24:26,678] [1cbb447f-df61-490f-990b-3c18d1b465e3] [INFO] | Roles Match...
[2021-05-05 08:24:28,809] [1cbb447f-df61-490f-990b-3c18d1b465e3] [INFO] | Name Match...
[2021-05-05 08:24:28,812] [1cbb447f-df61-490f-990b-3c18d1b465e3] [INFO] | Number Match...

我希望你能帮忙!

我一写完就回答了这个问题。我已经用UUID定义了记录器格式化程序,所以它是这样设置的,之后生成的所有UUID都不会添加到格式化程序中。我本可以放弃函数每次调用的处理程序,但我决定更改它,所以我改为在消息中指定UUID。

之前:

formatter = logging.Formatter('[%(asctime)s] [{}] [%(levelname)s] | %(message)s'.format(uuid))
logger.info(message)

之后:

formatter = logging.Formatter('[%(asctime)s] [%(levelname)s] %(message)s')
logger.info("[" + str(uuid) + "]" + " | " + message)

输出:

[2021-05-05 08:48:48,342] [INFO] [1f458c96-6074-4e64-9c09-505f1c296876] | Name Match...
[2021-05-05 08:48:48,344] [INFO] [1f458c96-6074-4e64-9c09-505f1c296876] | Number Match...
[2021-05-05 08:48:49,480] [INFO] [1f458c96-6074-4e64-9c09-505f1c296876] | Roles Match...
[2021-05-05 08:48:51,786] [INFO] [8122f7b9-72ab-4cc8-a45e-4a3c2a43bc0d] | Name Match...
[2021-05-05 08:48:51,788] [INFO] [8122f7b9-72ab-4cc8-a45e-4a3c2a43bc0d] | Number Match...
[2021-05-05 08:48:52,850] [INFO] [8122f7b9-72ab-4cc8-a45e-4a3c2a43bc0d] | Roles Match...

我知道这不是添加连接字符串的更好方法,但我现在只需要这样做。清理工作将在之后进行!

谢谢大家!

最新更新