[CP] merge ObLogger all type file_list
This commit is contained in:
@ -118,8 +118,6 @@ public:
|
|||||||
int64_t file_size_;
|
int64_t file_size_;
|
||||||
struct stat stat_;
|
struct stat stat_;
|
||||||
struct stat wf_stat_;
|
struct stat wf_stat_;
|
||||||
std::deque<std::string> file_list_;//to store the names of log-files
|
|
||||||
std::deque<std::string> wf_file_list_;//to store the names of warning log-files
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // common
|
} // common
|
||||||
|
|||||||
42
deps/oblib/src/lib/oblog/ob_log.cpp
vendored
42
deps/oblib/src/lib/oblog/ob_log.cpp
vendored
@ -743,7 +743,7 @@ void ObLogger::rotate_log(const int64_t size, const bool redirect_flag,
|
|||||||
if (OB_LIKELY(size > 0) && max_file_size_ > 0 && log_struct.file_size_ >= max_file_size_) {
|
if (OB_LIKELY(size > 0) && max_file_size_ > 0 && log_struct.file_size_ >= max_file_size_) {
|
||||||
if (OB_LIKELY(0 == pthread_mutex_trylock(&file_size_mutex_))) {
|
if (OB_LIKELY(0 == pthread_mutex_trylock(&file_size_mutex_))) {
|
||||||
rotate_log(log_struct.filename_, fd_type, redirect_flag, log_struct.fd_,
|
rotate_log(log_struct.filename_, fd_type, redirect_flag, log_struct.fd_,
|
||||||
log_struct.wf_fd_, log_struct.file_list_, log_struct.wf_file_list_);
|
log_struct.wf_fd_, file_list_, wf_file_list_);
|
||||||
(void)ATOMIC_SET(&log_struct.file_size_, 0);
|
(void)ATOMIC_SET(&log_struct.file_size_, 0);
|
||||||
if (fd_type <= FD_ELEC_FILE) {
|
if (fd_type <= FD_ELEC_FILE) {
|
||||||
(void)log_new_file_info(log_struct);
|
(void)log_new_file_info(log_struct);
|
||||||
@ -1255,17 +1255,17 @@ int ObLogger::record_old_log_file()
|
|||||||
int ret = OB_SUCCESS;
|
int ret = OB_SUCCESS;
|
||||||
if (max_file_index_ <= 0 || !rec_old_file_flag_) {
|
if (max_file_index_ <= 0 || !rec_old_file_flag_) {
|
||||||
} else {
|
} else {
|
||||||
|
int tmp_ret = OB_SUCCESS;
|
||||||
|
ObSEArray<FileName, 4> files;
|
||||||
|
ObSEArray<FileName, 4> wf_files;
|
||||||
for (int type = FD_SVR_FILE; type < FD_AUDIT_FILE; ++type) {
|
for (int type = FD_SVR_FILE; type < FD_AUDIT_FILE; ++type) {
|
||||||
ObSEArray<FileName, 4> files;
|
if (OB_TMP_FAIL(get_log_files_in_dir(log_file_[type].filename_, &files, &wf_files))) {
|
||||||
ObSEArray<FileName, 4> wf_files;
|
|
||||||
if (OB_FAIL(get_log_files_in_dir(log_file_[type].filename_, &files, &wf_files))) {
|
|
||||||
OB_LOG(WARN, "Get log files in log dir error", K(ret));
|
OB_LOG(WARN, "Get log files in log dir error", K(ret));
|
||||||
} else if (OB_FAIL(add_files_to_list(&files, &wf_files, log_file_[type].file_list_, log_file_[type].wf_file_list_))) {
|
|
||||||
OB_LOG(WARN, "Add files to list error", K(ret));
|
|
||||||
} else {
|
|
||||||
// do nothing
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (OB_FAIL(add_files_to_list(&files, &wf_files, file_list_, wf_file_list_))) {
|
||||||
|
OB_LOG(WARN, "Add files to list error", K(ret));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -1348,6 +1348,28 @@ int ObLogger::get_log_files_in_dir(const char *filename, void *files, void *wf_f
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int compare_log_filename_by_date_suffix(const void *v1, const void *v2)
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
if (NULL == v1) {
|
||||||
|
ret = -1;
|
||||||
|
} else if (NULL == v2) {
|
||||||
|
ret = 1;
|
||||||
|
} else {
|
||||||
|
const int DATE_LENGTH = 17;
|
||||||
|
const char *str1 = static_cast<const char *>(v1);
|
||||||
|
const char *str2 = static_cast<const char *>(v2);
|
||||||
|
if (strlen(str1) < DATE_LENGTH) {
|
||||||
|
ret = -1;
|
||||||
|
} else if (strlen(str2) < DATE_LENGTH) {
|
||||||
|
ret = 1;
|
||||||
|
} else {
|
||||||
|
ret = str_cmp(str1 + strlen(str1) - DATE_LENGTH, str2 + strlen(str2) - DATE_LENGTH);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
int ObLogger::add_files_to_list(void *files,
|
int ObLogger::add_files_to_list(void *files,
|
||||||
void *wf_files,
|
void *wf_files,
|
||||||
std::deque<std::string> &file_list,
|
std::deque<std::string> &file_list,
|
||||||
@ -1362,10 +1384,10 @@ int ObLogger::add_files_to_list(void *files,
|
|||||||
ObIArray<FileName> *wf_files_arr = static_cast<ObIArray<FileName> *>(wf_files);
|
ObIArray<FileName> *wf_files_arr = static_cast<ObIArray<FileName> *>(wf_files);
|
||||||
//sort files
|
//sort files
|
||||||
if (files_arr->count() > 0) {
|
if (files_arr->count() > 0) {
|
||||||
qsort(&files_arr->at(0), files_arr->count(), sizeof(FileName), str_cmp);
|
qsort(&files_arr->at(0), files_arr->count(), sizeof(FileName), compare_log_filename_by_date_suffix);
|
||||||
}
|
}
|
||||||
if (wf_files_arr->count() > 0) {
|
if (wf_files_arr->count() > 0) {
|
||||||
qsort(&wf_files_arr->at(0), wf_files_arr->count(), sizeof(FileName), str_cmp);
|
qsort(&wf_files_arr->at(0), wf_files_arr->count(), sizeof(FileName), compare_log_filename_by_date_suffix);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Add to file_list
|
//Add to file_list
|
||||||
|
|||||||
2
deps/oblib/src/lib/oblog/ob_log.h
vendored
2
deps/oblib/src/lib/oblog/ob_log.h
vendored
@ -865,6 +865,8 @@ private:
|
|||||||
// This info will be logged when log file created.
|
// This info will be logged when log file created.
|
||||||
const char *new_file_info_;
|
const char *new_file_info_;
|
||||||
bool info_as_wdiag_;
|
bool info_as_wdiag_;
|
||||||
|
std::deque<std::string> file_list_;//to store the names of log-files
|
||||||
|
std::deque<std::string> wf_file_list_;//to store the names of warning log-files
|
||||||
};
|
};
|
||||||
|
|
||||||
inline ObLogger& ObLogger::get_logger()
|
inline ObLogger& ObLogger::get_logger()
|
||||||
|
|||||||
Reference in New Issue
Block a user