我有一个问题是关于日志消息的,并且我无法解决它

所以我正在尝试开发一个可以显示字符串和日志的消息,但奇怪的是,日志只显示最后一个字符串而不是1条消息中的所有事件。有人可以帮忙吗?

function printToLog(string, log)
    if logPage.fromMainMenu == false then
      popupPage = logPage
    else
      logPage.fromMainMenu = true
      popupPage = logPage
    end

    prepareMenuPage(popupPage)
    local areYouSureText = getItemByName(logPage.items, "logText")
    setFont(areYouSureText.font)
    if log ~= true then
     areYouSureText.logText = string
     _G.table.insert(g_printLogList, string) -- insert string into log
     print(string)
    else
     for i = 1, #g_printLogList do
      areYouSureText.logText = g_printLogList[i]
     end
    end
  end
点赞
用户3342050
用户3342050

没有看到表格构造、输入值、预期结果或至少一个解释很难调试,但我会尝试。

这让我感到困惑

if logPage.fromMainMenu == false then
    popupPage = logPage
else                            --  如果不是 false...
    logPage.fromMainMenu = true  --  那么它已经是 true,在这里不需要将其设置为 true
    popupPage = logPage
end

我想知道这是否意味着是一个注释

if logPage.fromMainMenu == false then
    popupPage = logPage
else  --  logPage.fromMainMenu = true
    popupPage = logPage
end

但是,如果这是事实,你不需要 if...else - 它们正在做完全相同的事情。也许你的意思是要翻转它的值到另一个值?

if logPage.fromMainMenu == false then
    logPage.fromMainMenu = true
end
popupPage = logPage

无论哪种方式,我认为正在发生的是你每次循环时都在替换整个内容 areYouSureText.logText,用一个 g_printLogList[i] 条目。你实际上的意思是在每次循环时将 areYouSureText.logText 添加到 g_printLogList[i]

for i = 1, #g_printLogList do
    areYouSureText.logText[ #areYouSureText.logText +1 ] = g_printLogList[i]
end

编辑:

毫无差异,只需使用连接将文本附加即可。

areYouSureText.logText = areYouSureText.logText ..'\n' ..g_printLogList[i]
2021-05-29 15:33:43