]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
basic: Move ratelimit logging functions to log-ratelimit.h
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Sat, 24 May 2025 17:55:42 +0000 (19:55 +0200)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Sat, 24 May 2025 18:28:50 +0000 (03:28 +0900)
src/basic/log-ratelimit.h [new file with mode: 0644]
src/basic/ratelimit.h
src/journal/journald-audit.c
src/journal/journald-context.c
src/journal/journald-kmsg.c
src/journal/journald-manager.c
src/journal/journald-native.c
src/journal/journald-stream.c
src/journal/journald-syslog.c
src/libsystemd/sd-journal/journal-file.c
src/libsystemd/sd-journal/journal-vacuum.c

diff --git a/src/basic/log-ratelimit.h b/src/basic/log-ratelimit.h
new file mode 100644 (file)
index 0000000..8e4a7fb
--- /dev/null
@@ -0,0 +1,51 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#pragma once
+
+#include "log.h"
+#include "ratelimit.h"
+
+#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 fd8342637573dac756cb2efd16185417780b9b22..ce18354be52ab78bf133f1a6dfda42e0c92b1aae 100644 (file)
@@ -34,49 +34,3 @@ typedef struct LogRateLimit {
         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 41336321b7d510bbc5d108637dec5bab4217776e..314748301948e0d5af324108b13fb82f13a8928c 100644 (file)
@@ -12,6 +12,7 @@
 #include "journald-audit.h"
 #include "journald-manager.h"
 #include "log.h"
+#include "log-ratelimit.h"
 #include "missing_audit.h"
 #include "stdio-util.h"
 #include "string-util.h"
index 70c0a2a1eedf8aefb65ae1dd8c53c5dc2ebadc0e..258bccf6bdc1d24f786bf378c0f3ad5ce2aca6f0 100644 (file)
@@ -19,6 +19,7 @@
 #include "journald-context.h"
 #include "journald-manager.h"
 #include "log.h"
+#include "log-ratelimit.h"
 #include "parse-util.h"
 #include "path-util.h"
 #include "pidref.h"
index fe69f77e017d2d07a15cb7b400f822e7dfbe87bf..f8185baefc180f858538d26aa5db6d4a1740cb21 100644 (file)
@@ -22,6 +22,7 @@
 #include "journald-sync.h"
 #include "journald-syslog.h"
 #include "log.h"
+#include "log-ratelimit.h"
 #include "parse-util.h"
 #include "process-util.h"
 #include "stdio-util.h"
index 8f239a14f561b881de67275403c7b5fede39ecb4..55aa8bc30960391698024c0c496b6c869741cd18 100644 (file)
@@ -47,6 +47,7 @@
 #include "journald-syslog.h"
 #include "journald-varlink.h"
 #include "log.h"
+#include "log-ratelimit.h"
 #include "memory-util.h"
 #include "missing_audit.h"
 #include "mkdir.h"
index 2ae755b737100dee9d9d3d2899f72d884bd54895..9a622d272cfce169b816ecc686544d56796eb08e 100644 (file)
@@ -21,6 +21,7 @@
 #include "journald-syslog.h"
 #include "journald-wall.h"
 #include "log.h"
+#include "log-ratelimit.h"
 #include "memfd-util.h"
 #include "memory-util.h"
 #include "parse-util.h"
index 88a6233bcb79e7e3bde80f6ccb18d6a7c8e545ef..c7da314118aac8c7c96651e6579d3ef2f28dfb1f 100644 (file)
@@ -26,6 +26,7 @@
 #include "journald-syslog.h"
 #include "journald-wall.h"
 #include "log.h"
+#include "log-ratelimit.h"
 #include "mkdir.h"
 #include "parse-util.h"
 #include "process-util.h"
index 1aacf2fd19ff52fd81b88cef1b1c84f26c6f075d..8493bc24bd511fcfe1ebcc9a1ee38751ecdfac80 100644 (file)
@@ -19,6 +19,7 @@
 #include "journald-syslog.h"
 #include "journald-wall.h"
 #include "log.h"
+#include "log-ratelimit.h"
 #include "process-util.h"
 #include "selinux-util.h"
 #include "socket-util.h"
index 694530818747d18712b4c18c4d604d2fa5053f7e..dfc3e8aa9132e96189d5c8e103a7652e7e28d2b3 100644 (file)
@@ -27,6 +27,7 @@
 #include "journal-file.h"
 #include "journal-internal.h"
 #include "log.h"
+#include "log-ratelimit.h"
 #include "lookup3.h"
 #include "memory-util.h"
 #include "missing_fs.h"
index e069594f6d3a77dd647dc62ea5149bd31bfd9e71..b50a0179d0bb07c27c2b5e61d21b2c86715833fe 100644 (file)
@@ -16,6 +16,7 @@
 #include "journal-internal.h"
 #include "journal-vacuum.h"
 #include "log.h"
+#include "log-ratelimit.h"
 #include "ratelimit.h"
 #include "sort-util.h"
 #include "string-util.h"