From 421ef4b7492729a31cca2f696e9954cb3352bf1c Mon Sep 17 00:00:00 2001 From: Philipp Storz Date: Tue, 5 Apr 2022 14:01:20 +0200 Subject: [PATCH] logging: add timestamp --- core/src/dird/job.cc | 5 +++-- core/src/dird/ua_status.cc | 5 ++--- core/src/lib/parse_conf.cc | 9 +++------ core/src/lib/parse_conf.h | 22 ++++++++++++++++++---- 4 files changed, 26 insertions(+), 15 deletions(-) diff --git a/core/src/dird/job.cc b/core/src/dird/job.cc index be5455b4c6c..41a54bf21b5 100644 --- a/core/src/dird/job.cc +++ b/core/src/dird/job.cc @@ -1628,8 +1628,9 @@ JobControlRecord* NewDirectorJcr() { JobControlRecord* jcr = new_jcr(DirdFreeJcr); jcr->impl = new JobControlRecordPrivate(my_config->res_head_container_); - Dmsg1(10, "NewDirectorJcr(): res_head_ is at %p\n", - my_config->res_head_container_->res_head_); + Dmsg1(10, "NewDirectorJcr(): res_head_ is at %p %s\n", + my_config->res_head_container_->res_head_, + my_config->res_head_container_->TimeStampAsString().c_str()); return jcr; } diff --git a/core/src/dird/ua_status.cc b/core/src/dird/ua_status.cc index ad0d8dc8a4f..ece8caf03d3 100644 --- a/core/src/dird/ua_status.cc +++ b/core/src/dird/ua_status.cc @@ -347,9 +347,8 @@ void ListDirStatusHeader(UaContext* ua) kBareosVersionStrings.GetOsInfo()); bstrftime_nc(dt, sizeof(dt), daemon_start_time); ua->SendMsg(_("Daemon started %s. Jobs: run=%d, running=%d db:postgresql, %s " - "binary %d shared_count\n"), - dt, num_jobs_run, JobCount(), kBareosVersionStrings.BinaryInfo, - my_config->res_head_container_.use_count()); + "binary\n"), + dt, num_jobs_run, JobCount(), kBareosVersionStrings.BinaryInfo); if (me->secure_erase_cmdline) { ua->SendMsg(_(" secure erase command='%s'\n"), me->secure_erase_cmdline); diff --git a/core/src/lib/parse_conf.cc b/core/src/lib/parse_conf.cc index 17888a2deb5..1fa6ce7921a 100644 --- a/core/src/lib/parse_conf.cc +++ b/core/src/lib/parse_conf.cc @@ -207,6 +207,9 @@ bool ConfigurationParser::ParseConfig() bool success = ParseConfigFile(config_path.c_str(), nullptr, scan_error_, scan_warning_); if (success && ParseConfigReadyCb_) { ParseConfigReadyCb_(*this); } + + res_head_container_->timestamp_ = std::chrono::system_clock::now(); + return success; } @@ -518,8 +521,6 @@ bool ConfigurationParser::FindConfigPath(PoolMem& full_path) // when last job also owning finishes void ConfigurationParser::ReleasePreviousResourceTable() { - Dmsg1(10, "ConfigurationParser::ReleasePreviousResourceTable: %p\n", - res_head_container_backup_->res_head_); res_head_container_backup_ = nullptr; } @@ -528,10 +529,6 @@ void ConfigurationParser::ReleasePreviousResourceTable() void ConfigurationParser::RestoreResourceTable() { std::swap(res_head_container_, res_head_container_backup_); - Dmsg1(10, "ConfigurationParser::RestoreResourceTable: %p -> %p\n", - res_head_container_backup_->res_head_, res_head_container_->res_head_); - Dmsg1(10, "ConfigurationParser::RestoreResourceTable: release %p\n", - res_head_container_backup_->res_head_); res_head_container_backup_ = nullptr; } diff --git a/core/src/lib/parse_conf.h b/core/src/lib/parse_conf.h index 9bcd21338eb..a4b15ca815b 100644 --- a/core/src/lib/parse_conf.h +++ b/core/src/lib/parse_conf.h @@ -418,8 +418,21 @@ class ConfigurationParser { void SetResourceDefaultsParserPass2(ResourceItem* item); }; + +static std::string TPAsString(const std::chrono::system_clock::time_point& tp) +{ + std::time_t t = std::chrono::system_clock::to_time_t(tp); + char str[100]; + if (!std::strftime(str, sizeof(str), "%F_%H:%M:%S", std::localtime(&t))) { + return std::string("strftime error"); + } + std::string ts = str; + return ts; +} + class ResHeadContainer { public: + std::chrono::time_point timestamp_{}; BareosResource** res_head_ = nullptr; ConfigurationParser* config_ = nullptr; @@ -430,14 +443,13 @@ class ResHeadContainer { res_head_ = (BareosResource**)malloc(num * sizeof(BareosResource*)); for (int i = 0; i < num; i++) { res_head_[i] = nullptr; } - Dmsg1(10, "ResHeadContainer::ResHeadContainer : res_head_ is at %p\n", - res_head_); + Dmsg1(10, "ResHeadContainer: new res_head_ %p\n", res_head_); } ~ResHeadContainer() { - Dmsg1(10, "ResHeadContainer::~ResHeadContainer : freeing res_head at %p\n", - res_head_); + Dmsg1(10, "ResHeadContainer freeing %p %s\n", res_head_, + TPAsString(timestamp_).c_str()); int num = config_->r_num_; for (int j = 0; j < num; j++) { config_->FreeResourceCb_(res_head_[j], j); @@ -446,6 +458,8 @@ class ResHeadContainer { free(res_head_); res_head_ = nullptr; } + + std::string TimeStampAsString() { return TPAsString(timestamp_); } };