我目前正在研究 Lua 脚本以与某些第三方产品集成。这个第三方产品同时在多个线程上调用我的 Lua 脚本,这很好。但是,当我从脚本写入日志文件时,我想确定哪个线程正在运行我的 Lua 脚本并将其写入日志文件。
这将允许我确定哪些日志条目属于一起。
任何关于如何正确区分来自 Lua 中不同线程的日志条目的想法都将非常受欢迎。
表的默认tostring()
表示包含表的(内存)地址。它保证在同一进程上运行的不同 Lua VM 中是唯一的。
您可以利用它为每个线程生成一个唯一 ID:
local unique_id = tostring( {} ):sub(8) -- extracts the "address" part
print(unique_id)
--> outputs 0x7f876b608b00
作为旁注,这是生成用于全局 Lua注册表的唯一密钥的推荐方法!