aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Atack <jon@atack.com>2021-07-22 16:35:22 +0200
committerJon Atack <jon@atack.com>2021-07-22 23:09:42 +0200
commit7c57297319bc386afaf06528778384fe58576ef9 (patch)
tree9c280d5ef9e282f9577f060b09e61fa46f576b90
parentf720cfa824f1be863349e7016080f8fb1c3c76c2 (diff)
log: sort LogCategoriesList and LogCategoriesString alphabetically
-rw-r--r--src/logging.cpp9
-rw-r--r--src/logging.h4
2 files changed, 10 insertions, 3 deletions
diff --git a/src/logging.cpp b/src/logging.cpp
index e5187fd596..fcb46debf7 100644
--- a/src/logging.cpp
+++ b/src/logging.cpp
@@ -8,6 +8,8 @@
#include <util/string.h>
#include <util/time.h>
+#include <algorithm>
+#include <array>
#include <mutex>
const char * const DEFAULT_DEBUGLOGFILE = "debug.log";
@@ -179,8 +181,13 @@ bool GetLogCategory(BCLog::LogFlags& flag, const std::string& str)
std::vector<LogCategory> BCLog::Logger::LogCategoriesList() const
{
+ // Sort log categories by alphabetical order.
+ std::array<CLogCategoryDesc, std::size(LogCategories)> categories;
+ std::copy(std::begin(LogCategories), std::end(LogCategories), categories.begin());
+ std::sort(categories.begin(), categories.end(), [](auto a, auto b) { return a.category < b.category; });
+
std::vector<LogCategory> ret;
- for (const CLogCategoryDesc& category_desc : LogCategories) {
+ for (const CLogCategoryDesc& category_desc : categories) {
// Omit the special cases.
if (category_desc.flag != BCLog::NONE && category_desc.flag != BCLog::ALL) {
LogCategory catActive;
diff --git a/src/logging.h b/src/logging.h
index d04bc99268..38d73863e7 100644
--- a/src/logging.h
+++ b/src/logging.h
@@ -138,9 +138,9 @@ namespace BCLog {
bool DisableCategory(const std::string& str);
bool WillLogCategory(LogFlags category) const;
- /** Returns a vector of the log categories */
+ /** Returns a vector of the log categories in alphabetical order. */
std::vector<LogCategory> LogCategoriesList() const;
- /** Returns a string with the log categories */
+ /** Returns a string with the log categories in alphabetical order. */
std::string LogCategoriesString() const
{
return Join(LogCategoriesList(), ", ", [&](const LogCategory& i) { return i.category; });