moonbingbing / openresty-best-practices

3.6k stars 872 forks source link

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

Open hy0604 opened 3 years ago

hy0604 commented 3 years ago

文档里面这里说的:

虽然小于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阶段就没问题了)不太对,还望帮忙解答这个疑问