Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

有个疑问关于日志记录的-logger #349

Open
hy0604 opened this issue Oct 27, 2021 · 0 comments
Open

有个疑问关于日志记录的-logger #349

hy0604 opened this issue Oct 27, 2021 · 0 comments

Comments

@hy0604
Copy link

hy0604 commented Oct 27, 2021

文档里面这里说的:

  • 由于在 content_by_lua* 阶段变量的生命周期会随着请求的终结而终结,所以当日志量小于 flush_limit 的情况下这些日志就不能被累积,也不会触发 _flush_buffer 函数,所以小日志会丢失。
  • 这些坑回头看来这么明显,所有的问题都是因为我们把 lua/log.lua 用错阶段了,应该放到 log_by_lua* 阶段,所有的问题都不复存在。

虽然小于flush_limit的内容不会flush,但是会放到 模块变量log_buffer_data这个数组中

local function _write_buffer(msg, len)
    log_buffer_index = log_buffer_index + 1
    log_buffer_data[log_buffer_index] = msg

    buffer_size = buffer_size + len


    return buffer_size
end

我的两个疑问:

  1. 既然模块变量会缓存,那么下次就会把之前累加的内容一起给发送了,为什么你这里写的不会累加?
  2. 而且就算放到log_by_lua阶段,小于flush_limit的内容,也只会写入buffer, 不会flush刷到磁盘; 所以我认为 第二句话(放到log_by_lua阶段就没问题了)不太对,还望帮忙解答这个疑问
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant