无消息但具有级别的lua回溯

无消息但具有级别的lua回溯,lua,Lua,以下是一些有趣的事情: -- file1.lua require('./file2') -- file2.lua print("default:") print(debug.traceback()) print("\n") print("with both options:") print(debug.traceback("prefix", 2)) print("\n") print("nil message:") print(debug.traceback(nil, 2)) 这就是我得

以下是一些有趣的事情:

-- file1.lua
require('./file2')

-- file2.lua
print("default:")
print(debug.traceback())
print("\n")

print("with both options:")
print(debug.traceback("prefix", 2))
print("\n")

print("nil message:")
print(debug.traceback(nil, 2))
这就是我得到的

default:
stack traceback:
        ./file2.lua:3: in main chunk
        [C]: in function 'require'
        file1.lua:2: in main chunk
        [C]: ?


with both options:
prefix
stack traceback:
        [C]: in function 'require'
        file1.lua:2: in main chunk
        [C]: ?


nil message:
nil

所以,如果我想有一个级别,我还必须包含一条消息?如何在不提供消息的情况下使其工作?

可能是Lua5.1中的一个bug(在Lua5.2中已修复)。作为一种解决方法,可以使用空字符串代替
nil
Ya,但是日志将有一个空白的新行,我想这是预期的行为。当消息不是字符串时,至少源有一个显式的
返回。LuaJIT中也是如此@HenriMenke那么我不明白为什么他们不允许开发人员只提供级别而不提供自定义消息。@Kousha这是Lua邮件列表中应该问的问题。可能是Lua 5.1中的错误(在Lua 5.2中修复)。作为一种解决方法,可以使用空字符串代替
nil
Ya,但是日志将有一个空白的新行,我想这是预期的行为。当消息不是字符串时,至少源有一个显式的
返回。LuaJIT实际上也是一样@HenriMenke那么我不明白为什么他们不允许开发人员只提供级别而不提供自定义消息。@Kousha这是Lua邮件列表中应该问的问题。