Hi Thuan and Vu,
Thanks for your comment. I will update it. Best Regards, ThienHuynh From: Vu Minh Nguyen <vu.m.ngu...@dektech.com.au> Sent: Tuesday, April 7, 2020 2:43 PM To: Thien Minh Huynh <thien.m.hu...@dektech.com.au>; Thuan Tran <thuan.t...@dektech.com.au> Cc: opensaf-devel@lists.sourceforge.net Subject: Re: [PATCH 1/1] log: log content is placed in a file of another stream [#3175] Hi Thien, Given file_name_find_g = "testme". Is filter_logfile_name() expected to return true if finfo->d_name = "testme_20200407_143120_20200407_153120.log"? or finfo->d_name = "testme_2.log.log"? To me, it is better to use regular expression to assure that it only returns true if finfo->d_name matches the pattern: d_name starts with `file_name_find_g`, then follows by '_yyyyMMdd_HHmmss' time format and ends with '.log' extension. E.g: #include <regex> static std::string file_name_find_g; static int filter_logfile_name(const struct dirent *finfo) { const std::string pattern = "^" + file_name_find_g + "_[0-9]{8}_[0-9]{6}.log$"; const std::regex e{pattern}; if (std::regex_match(finfo->d_name, e)) { return true; } return false; } On 4/7/20 1:21 PM, thien.m.huynh wrote: --- src/log/logd/lgs_filehdl.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/log/logd/lgs_filehdl.cc b/src/log/logd/lgs_filehdl.cc index 0d7fb2b74..238259454 100644 --- a/src/log/logd/lgs_filehdl.cc +++ b/src/log/logd/lgs_filehdl.cc @@ -965,8 +965,10 @@ static int chr_cnt_b(char *str, char c, int lim) { static std::string file_name_find_g; static int filter_logfile_name(const struct dirent *finfo) { int found = 0; + int len = file_name_find_g.length(); - if ((strstr(finfo->d_name, file_name_find_g.c_str()) != nullptr) && + if ((strncmp(finfo->d_name, file_name_find_g.c_str(), len) == 0) && + isdigit(finfo->d_name[len + 1]) && (strstr(finfo->d_name, ".log") != nullptr)) found = 1; _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel