nghttpx: Don't cache time for logging
Update is done by main event loop which is stopped after graceful shutdown is commenced, which means time is no longer update. To avoid this situation, we just avoid caching and get time for each logging.
This commit is contained in:
parent
e8107b68c8
commit
ba795d86f0
|
@ -421,19 +421,11 @@ void graceful_shutdown_signal_cb(struct ev_loop *loop, ev_signal *w,
|
||||||
}
|
}
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
namespace {
|
|
||||||
std::unique_ptr<std::string> generate_time() {
|
|
||||||
return util::make_unique<std::string>(
|
|
||||||
util::format_common_log(std::chrono::system_clock::now()));
|
|
||||||
}
|
|
||||||
} // namespace
|
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
void refresh_cb(struct ev_loop *loop, ev_timer *w, int revents) {
|
void refresh_cb(struct ev_loop *loop, ev_timer *w, int revents) {
|
||||||
auto listener_handler = static_cast<ListenHandler *>(w->data);
|
auto listener_handler = static_cast<ListenHandler *>(w->data);
|
||||||
auto worker_stat = listener_handler->get_worker_stat();
|
auto worker_stat = listener_handler->get_worker_stat();
|
||||||
|
|
||||||
mod_config()->cached_time = generate_time();
|
|
||||||
// In multi threaded mode (get_config()->num_worker > 1), we have to
|
// In multi threaded mode (get_config()->num_worker > 1), we have to
|
||||||
// wait for event notification to workers to finish.
|
// wait for event notification to workers to finish.
|
||||||
if (get_config()->num_worker == 1 && worker_config->graceful_shutdown &&
|
if (get_config()->num_worker == 1 && worker_config->graceful_shutdown &&
|
||||||
|
@ -698,7 +690,6 @@ void fill_default_config() {
|
||||||
nghttp2_option_set_no_auto_window_update(mod_config()->http2_option, 1);
|
nghttp2_option_set_no_auto_window_update(mod_config()->http2_option, 1);
|
||||||
|
|
||||||
mod_config()->tls_proto_mask = 0;
|
mod_config()->tls_proto_mask = 0;
|
||||||
mod_config()->cached_time = generate_time();
|
|
||||||
mod_config()->no_location_rewrite = false;
|
mod_config()->no_location_rewrite = false;
|
||||||
mod_config()->argc = 0;
|
mod_config()->argc = 0;
|
||||||
mod_config()->argv = nullptr;
|
mod_config()->argv = nullptr;
|
||||||
|
|
|
@ -169,7 +169,6 @@ struct Config {
|
||||||
std::vector<std::pair<std::string, std::string>> add_response_headers;
|
std::vector<std::pair<std::string, std::string>> add_response_headers;
|
||||||
std::vector<unsigned char> alpn_prefs;
|
std::vector<unsigned char> alpn_prefs;
|
||||||
std::vector<LogFragment> accesslog_format;
|
std::vector<LogFragment> accesslog_format;
|
||||||
std::shared_ptr<std::string> cached_time;
|
|
||||||
std::vector<DownstreamAddr> downstream_addrs;
|
std::vector<DownstreamAddr> downstream_addrs;
|
||||||
// binary form of http proxy host and port
|
// binary form of http proxy host and port
|
||||||
sockaddr_union downstream_http_proxy_addr;
|
sockaddr_union downstream_http_proxy_addr;
|
||||||
|
|
|
@ -122,16 +122,16 @@ Log::~Log() {
|
||||||
char buf[4096];
|
char buf[4096];
|
||||||
auto tty = wconf->errorlog_tty;
|
auto tty = wconf->errorlog_tty;
|
||||||
|
|
||||||
auto cached_time = get_config()->cached_time;
|
auto time_now = util::format_common_log(std::chrono::system_clock::now());
|
||||||
|
|
||||||
if (severity_ == NOTICE) {
|
if (severity_ == NOTICE) {
|
||||||
rv = snprintf(buf, sizeof(buf), "%s PID%d [%s%s%s] %s\n",
|
rv = snprintf(buf, sizeof(buf), "%s PID%d [%s%s%s] %s\n", time_now.c_str(),
|
||||||
cached_time->c_str(), get_config()->pid,
|
get_config()->pid, tty ? SEVERITY_COLOR[severity_] : "",
|
||||||
tty ? SEVERITY_COLOR[severity_] : "", SEVERITY_STR[severity_],
|
SEVERITY_STR[severity_], tty ? "\033[0m" : "",
|
||||||
tty ? "\033[0m" : "", stream_.str().c_str());
|
stream_.str().c_str());
|
||||||
} else {
|
} else {
|
||||||
rv = snprintf(buf, sizeof(buf), "%s PID%d [%s%s%s] %s%s:%d%s %s\n",
|
rv = snprintf(buf, sizeof(buf), "%s PID%d [%s%s%s] %s%s:%d%s %s\n",
|
||||||
cached_time->c_str(), get_config()->pid,
|
time_now.c_str(), get_config()->pid,
|
||||||
tty ? SEVERITY_COLOR[severity_] : "", SEVERITY_STR[severity_],
|
tty ? SEVERITY_COLOR[severity_] : "", SEVERITY_STR[severity_],
|
||||||
tty ? "\033[0m" : "", tty ? "\033[1;30m" : "", filename_,
|
tty ? "\033[0m" : "", tty ? "\033[1;30m" : "", filename_,
|
||||||
linenum_, tty ? "\033[0m" : "", stream_.str().c_str());
|
linenum_, tty ? "\033[0m" : "", stream_.str().c_str());
|
||||||
|
|
Loading…
Reference in New Issue