]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
basic: Move ratelimit logging functions to ratelimit.h
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Sat, 12 Apr 2025 09:16:49 +0000 (11:16 +0200)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Fri, 18 Apr 2025 08:11:40 +0000 (10:11 +0200)
The ratelimit logging functions are only useful in a few scenarios
so let's move them to ratelimit.h instead of keeping them in the
generic log.h

src/basic/lock-util.h
src/basic/log.h
src/basic/ratelimit.h
src/core/clock-warp.c
src/core/execute.h
src/libsystemd/sd-journal/journal-file.c
src/libsystemd/sd-journal/journal-vacuum.c
src/libsystemd/sd-json/sd-json.c
src/shared/watchdog.c
src/udev/scsi_id/scsi_serial.c

index a67d8b2c931f4085ed866a6d5ea5e452ad8ab5c8..b327b8e5614c0fd3413d5265f4bcc384abb17663 100644 (file)
@@ -5,6 +5,8 @@
 /* Include here so consumers have LOCK_{EX,SH,NB} available. */
 #include <sys/file.h>
 
+#include "time-util.h"
+
 typedef struct LockFile {
         int dir_fd;
         char *path;
index def54c81b130ce9cefd6671d39480714671487aa..3687c8e69bf91536d53c48f586603b2501979595 100644 (file)
@@ -9,7 +9,6 @@
 
 #include "list.h"
 #include "macro.h"
-#include "ratelimit.h"
 #include "stdio-util.h"
 
 /* Some structures we reference but don't want to pull in headers for */
@@ -403,58 +402,6 @@ int log_syntax_parse_error_internal(
 
 void log_setup(void);
 
-typedef struct LogRateLimit {
-        int error;
-        int level;
-        RateLimit ratelimit;
-} LogRateLimit;
-
-#define log_ratelimit_internal(_level, _error, _ratelimit, _file, _line, _func, _format, ...)        \
-({                                                                              \
-        int _log_ratelimit_error = (_error);                                    \
-        int _log_ratelimit_level = (_level);                                    \
-        static LogRateLimit _log_ratelimit = {                                  \
-                .ratelimit = (_ratelimit),                                      \
-        };                                                                      \
-        unsigned _num_dropped_errors = ratelimit_num_dropped(&_log_ratelimit.ratelimit); \
-        if (_log_ratelimit_error != _log_ratelimit.error || _log_ratelimit_level != _log_ratelimit.level) { \
-                ratelimit_reset(&_log_ratelimit.ratelimit);                     \
-                _log_ratelimit.error = _log_ratelimit_error;                    \
-                _log_ratelimit.level = _log_ratelimit_level;                    \
-        }                                                                       \
-        if (log_get_max_level() == LOG_DEBUG || ratelimit_below(&_log_ratelimit.ratelimit)) \
-                _log_ratelimit_error = _num_dropped_errors > 0                  \
-                ? log_internal(_log_ratelimit_level, _log_ratelimit_error, _file, _line, _func, _format " (Dropped %u similar message(s))", ##__VA_ARGS__, _num_dropped_errors) \
-                : log_internal(_log_ratelimit_level, _log_ratelimit_error, _file, _line, _func, _format, ##__VA_ARGS__); \
-        _log_ratelimit_error;                                                   \
-})
-
-#define log_ratelimit_full_errno(level, error, _ratelimit, format, ...)             \
-        ({                                                              \
-                int _level = (level), _e = (error);                     \
-                _e = (log_get_max_level() >= LOG_PRI(_level))           \
-                        ? log_ratelimit_internal(_level, _e, _ratelimit, PROJECT_FILE, __LINE__, __func__, format, ##__VA_ARGS__) \
-                        : -ERRNO_VALUE(_e);                             \
-                _e < 0 ? _e : -ESTRPIPE;                                \
-        })
-
-#define log_ratelimit_full(level, _ratelimit, format, ...)                          \
-        log_ratelimit_full_errno(level, 0, _ratelimit, format, ##__VA_ARGS__)
-
-/* Normal logging */
-#define log_ratelimit_info(...)      log_ratelimit_full(LOG_INFO,    __VA_ARGS__)
-#define log_ratelimit_notice(...)    log_ratelimit_full(LOG_NOTICE,  __VA_ARGS__)
-#define log_ratelimit_warning(...)   log_ratelimit_full(LOG_WARNING, __VA_ARGS__)
-#define log_ratelimit_error(...)     log_ratelimit_full(LOG_ERR,     __VA_ARGS__)
-#define log_ratelimit_emergency(...) log_ratelimit_full(log_emergency_level(), __VA_ARGS__)
-
-/* Logging triggered by an errno-like error */
-#define log_ratelimit_info_errno(error, ...)      log_ratelimit_full_errno(LOG_INFO,    error, __VA_ARGS__)
-#define log_ratelimit_notice_errno(error, ...)    log_ratelimit_full_errno(LOG_NOTICE,  error, __VA_ARGS__)
-#define log_ratelimit_warning_errno(error, ...)   log_ratelimit_full_errno(LOG_WARNING, error, __VA_ARGS__)
-#define log_ratelimit_error_errno(error, ...)     log_ratelimit_full_errno(LOG_ERR,     error, __VA_ARGS__)
-#define log_ratelimit_emergency_errno(error, ...) log_ratelimit_full_errno(log_emergency_level(), error, __VA_ARGS__)
-
 const char* _log_set_prefix(const char *prefix, bool force);
 static inline const char* _log_unset_prefixp(const char **p) {
         assert(p);
index 7801ef4270aee7ed43f7d68a02f7bfb6558d146e..fd8342637573dac756cb2efd16185417780b9b22 100644 (file)
@@ -28,3 +28,55 @@ unsigned ratelimit_num_dropped(const RateLimit *rl);
 
 usec_t ratelimit_end(const RateLimit *rl);
 usec_t ratelimit_left(const RateLimit *rl);
+
+typedef struct LogRateLimit {
+        int error;
+        int level;
+        RateLimit ratelimit;
+} LogRateLimit;
+
+#define log_ratelimit_internal(_level, _error, _ratelimit, _file, _line, _func, _format, ...)        \
+({                                                                              \
+        int _log_ratelimit_error = (_error);                                    \
+        int _log_ratelimit_level = (_level);                                    \
+        static LogRateLimit _log_ratelimit = {                                  \
+                .ratelimit = (_ratelimit),                                      \
+        };                                                                      \
+        unsigned _num_dropped_errors = ratelimit_num_dropped(&_log_ratelimit.ratelimit); \
+        if (_log_ratelimit_error != _log_ratelimit.error || _log_ratelimit_level != _log_ratelimit.level) { \
+                ratelimit_reset(&_log_ratelimit.ratelimit);                     \
+                _log_ratelimit.error = _log_ratelimit_error;                    \
+                _log_ratelimit.level = _log_ratelimit_level;                    \
+        }                                                                       \
+        if (log_get_max_level() == LOG_DEBUG || ratelimit_below(&_log_ratelimit.ratelimit)) \
+                _log_ratelimit_error = _num_dropped_errors > 0                  \
+                ? log_internal(_log_ratelimit_level, _log_ratelimit_error, _file, _line, _func, _format " (Dropped %u similar message(s))", ##__VA_ARGS__, _num_dropped_errors) \
+                : log_internal(_log_ratelimit_level, _log_ratelimit_error, _file, _line, _func, _format, ##__VA_ARGS__); \
+        _log_ratelimit_error;                                                   \
+})
+
+#define log_ratelimit_full_errno(level, error, _ratelimit, format, ...)             \
+        ({                                                              \
+                int _level = (level), _e = (error);                     \
+                _e = (log_get_max_level() >= LOG_PRI(_level))           \
+                        ? log_ratelimit_internal(_level, _e, _ratelimit, PROJECT_FILE, __LINE__, __func__, format, ##__VA_ARGS__) \
+                        : -ERRNO_VALUE(_e);                             \
+                _e < 0 ? _e : -ESTRPIPE;                                \
+        })
+
+#define log_ratelimit_full(level, _ratelimit, format, ...)                          \
+        log_ratelimit_full_errno(level, 0, _ratelimit, format, ##__VA_ARGS__)
+
+/* Normal logging */
+#define log_ratelimit_info(...)      log_ratelimit_full(LOG_INFO,    __VA_ARGS__)
+#define log_ratelimit_notice(...)    log_ratelimit_full(LOG_NOTICE,  __VA_ARGS__)
+#define log_ratelimit_warning(...)   log_ratelimit_full(LOG_WARNING, __VA_ARGS__)
+#define log_ratelimit_error(...)     log_ratelimit_full(LOG_ERR,     __VA_ARGS__)
+#define log_ratelimit_emergency(...) log_ratelimit_full(log_emergency_level(), __VA_ARGS__)
+
+/* Logging triggered by an errno-like error */
+#define log_ratelimit_info_errno(error, ...)      log_ratelimit_full_errno(LOG_INFO,    error, __VA_ARGS__)
+#define log_ratelimit_notice_errno(error, ...)    log_ratelimit_full_errno(LOG_NOTICE,  error, __VA_ARGS__)
+#define log_ratelimit_warning_errno(error, ...)   log_ratelimit_full_errno(LOG_WARNING, error, __VA_ARGS__)
+#define log_ratelimit_error_errno(error, ...)     log_ratelimit_full_errno(LOG_ERR,     error, __VA_ARGS__)
+#define log_ratelimit_emergency_errno(error, ...) log_ratelimit_full_errno(log_emergency_level(), error, __VA_ARGS__)
index 3620c6942eff464f1271febcb6251e39b2b18ea8..e9a832a8e72e583fe437b94c4783948263a01f35 100644 (file)
@@ -8,6 +8,7 @@
 #include "clock-util.h"
 #include "clock-warp.h"
 #include "errno-util.h"
+#include "time-util.h"
 
 int clock_reset_timewarp(void) {
         static const struct timezone tz = {
index 78f04d517396108199a7dc453953a120a57d3365..63d5b448defc50733e506181e1321ed75a461c4d 100644 (file)
@@ -28,6 +28,7 @@ typedef struct Manager Manager;
 #include "open-file.h"
 #include "ordered-set.h"
 #include "path-util.h"
+#include "ratelimit.h"
 #include "rlimit-util.h"
 #include "runtime-scope.h"
 #include "set.h"
index a0e618cf1dc2a36f95b2bda7a21ce67a0170abfa..2f3e48c674ccf64ea457ed7c875a43ded1590d18 100644 (file)
@@ -32,6 +32,7 @@
 #include "path-util.h"
 #include "prioq.h"
 #include "random-util.h"
+#include "ratelimit.h"
 #include "set.h"
 #include "sort-util.h"
 #include "stat-util.h"
index f7dee86209e73f4ae13f529a9a9d23651d47e7e5..7537f5be49da18f6c46ba2b53e17ce57d4b6e217 100644 (file)
@@ -15,6 +15,7 @@
 #include "journal-file.h"
 #include "journal-internal.h"
 #include "journal-vacuum.h"
+#include "ratelimit.h"
 #include "sort-util.h"
 #include "string-util.h"
 #include "time-util.h"
index 618ce93978cc097bb58d99cc99112ef6cacae63a..f330045f5d5fd97377206d4df70a366df6a83125 100644 (file)
@@ -31,6 +31,7 @@
 #include "memstream-util.h"
 #include "path-util.h"
 #include "process-util.h"
+#include "ratelimit.h"
 #include "set.h"
 #include "signal-util.h"
 #include "string-table.h"
index 0da142b51ae1f23b186ec750f48bf112ae01ed85..a6077d6654021c5a529582a790a5e29ab17c8601 100644 (file)
@@ -15,6 +15,7 @@
 #include "fileio.h"
 #include "log.h"
 #include "path-util.h"
+#include "ratelimit.h"
 #include "string-util.h"
 #include "time-util.h"
 #include "watchdog.h"
index d8655c08c3b672223d6c37f9046b96a3e57b4a88..e83523fe251206a3a5d15f0b39233db6460d95f6 100644 (file)
@@ -26,6 +26,7 @@
 #include "scsi.h"
 #include "scsi_id.h"
 #include "string-util.h"
+#include "time-util.h"
 
 /*
  * A priority based list of id, naa, and binary/ascii for the identifier