使用UUID跨python 3.x中的所有python文件进行日志记录

2024-06-02 08:42:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试模块化一个小的Python脚本,以便对其进行扩展。当它非常小的时候,我创建了一个correlationKey(这是一个UUID)全局变量,我在登录时使用它,这样我就可以很容易地找到与这一次运行相关的日志。我如何在所有文件中全局共享此信息,但仅限于此一个进程?在结束或脚本退出后,我不希望它继续使用该UUID进行日志记录。线程安全变量是一种可行的方法吗?我对python还很陌生,所以我一直在努力找出适合新手的最佳方式

我已经设置了自己的名为logging的函数,它可以实现我想要的功能,现在我只需要找出如何利用它,以便调用log()的所有文件和函数都将获得相同的correlationKey

编辑:

我现在正在通过HEC登录到我的Splunk实例。所以我有一个自定义的日志实现。这很简单

现在,请将此设置为:

def log(message):
    payload = {}
    payload.update({"source":"c19"})
    payload.update({"host":"server"})
    payload.update({"time": time.time() })
    message = "timestamp=\"" + str(datetime.now()) + "\" correlationKey=" + correlationKey + " message=\"" + str(message) + "\""
    payload.update({"event":message})
    #print(payload)
    r = requests.post(splunkHost, headers=splunkAuthHeader, json=payload, verify=False)
    #print(r.text)

Tags: 文件函数脚本logmessageuuidtimeupdate