1
0
mirror of https://github.com/systemd/systemd.git synced 2024-12-23 21:35:11 +03:00

log: drop unused LogRealm

Already no binary is built with LOG_REALM= argument.
Hence, we can safely drop LogRealm now.
This commit is contained in:
Yu Watanabe 2021-01-17 13:59:33 +09:00
parent 3cc6b14a87
commit 9fdee66f2d
4 changed files with 57 additions and 125 deletions

View File

@ -40,8 +40,7 @@
#define SNDBUF_SIZE (8*1024*1024)
static LogTarget log_target = LOG_TARGET_CONSOLE;
static int log_max_level[] = {LOG_INFO, LOG_INFO};
assert_cc(ELEMENTSOF(log_max_level) == _LOG_REALM_MAX);
static int log_max_level = LOG_INFO;
static int log_facility = LOG_DAEMON;
static int console_fd = STDERR_FILENO;
@ -352,11 +351,10 @@ void log_forget_fds(void) {
console_fd = kmsg_fd = syslog_fd = journal_fd = -1;
}
void log_set_max_level_realm(LogRealm realm, int level) {
void log_set_max_level(int level) {
assert((level & LOG_PRIMASK) == level);
assert(realm < ELEMENTSOF(log_max_level));
log_max_level[realm] = level;
log_max_level = level;
}
void log_set_facility(int facility) {
@ -716,18 +714,17 @@ int log_dump_internal(
const char *func,
char *buffer) {
LogRealm realm = LOG_REALM_REMOVE_LEVEL(level);
PROTECT_ERRNO;
/* This modifies the buffer... */
if (_likely_(LOG_PRI(level) > log_max_level[realm]))
if (_likely_(LOG_PRI(level) > log_max_level))
return -ERRNO_VALUE(error);
return log_dispatch_internal(level, error, file, line, func, NULL, NULL, NULL, NULL, buffer);
}
int log_internalv_realm(
int log_internalv(
int level,
int error,
const char *file,
@ -736,11 +733,10 @@ int log_internalv_realm(
const char *format,
va_list ap) {
LogRealm realm = LOG_REALM_REMOVE_LEVEL(level);
char buffer[LINE_MAX];
PROTECT_ERRNO;
if (_likely_(LOG_PRI(level) > log_max_level[realm]))
if (_likely_(LOG_PRI(level) > log_max_level))
return -ERRNO_VALUE(error);
/* Make sure that %m maps to the specified error (or "Success"). */
@ -751,7 +747,7 @@ int log_internalv_realm(
return log_dispatch_internal(level, error, file, line, func, NULL, NULL, NULL, NULL, buffer);
}
int log_internal_realm(
int log_internal(
int level,
int error,
const char *file,
@ -763,7 +759,7 @@ int log_internal_realm(
int r;
va_start(ap, format);
r = log_internalv_realm(level, error, file, line, func, format, ap);
r = log_internalv(level, error, file, line, func, format, ap);
va_end(ap);
return r;
@ -785,7 +781,7 @@ int log_object_internalv(
PROTECT_ERRNO;
char *buffer, *b;
if (_likely_(LOG_PRI(level) > log_max_level[LOG_REALM_SYSTEMD]))
if (_likely_(LOG_PRI(level) > log_max_level))
return -ERRNO_VALUE(error);
/* Make sure that %m maps to the specified error (or "Success"). */
@ -838,9 +834,8 @@ static void log_assert(
const char *format) {
static char buffer[LINE_MAX];
LogRealm realm = LOG_REALM_REMOVE_LEVEL(level);
if (_likely_(LOG_PRI(level) > log_max_level[realm]))
if (_likely_(LOG_PRI(level) > log_max_level))
return;
DISABLE_WARNING_FORMAT_NONLITERAL;
@ -852,41 +847,38 @@ static void log_assert(
log_dispatch_internal(level, 0, file, line, func, NULL, NULL, NULL, NULL, buffer);
}
_noreturn_ void log_assert_failed_realm(
LogRealm realm,
_noreturn_ void log_assert_failed(
const char *text,
const char *file,
int line,
const char *func) {
log_assert(LOG_REALM_PLUS_LEVEL(realm, LOG_CRIT), text, file, line, func,
log_assert(LOG_CRIT, text, file, line, func,
"Assertion '%s' failed at %s:%u, function %s(). Aborting.");
abort();
}
_noreturn_ void log_assert_failed_unreachable_realm(
LogRealm realm,
_noreturn_ void log_assert_failed_unreachable(
const char *text,
const char *file,
int line,
const char *func) {
log_assert(LOG_REALM_PLUS_LEVEL(realm, LOG_CRIT), text, file, line, func,
log_assert(LOG_CRIT, text, file, line, func,
"Code should not be reached '%s' at %s:%u, function %s(). Aborting.");
abort();
}
void log_assert_failed_return_realm(
LogRealm realm,
void log_assert_failed_return(
const char *text,
const char *file,
int line,
const char *func) {
PROTECT_ERRNO;
log_assert(LOG_REALM_PLUS_LEVEL(realm, LOG_DEBUG), text, file, line, func,
log_assert(LOG_DEBUG, text, file, line, func,
"Assertion '%s' failed at %s:%u, function %s(). Ignoring.");
}
int log_oom_internal(int level, const char *file, int line, const char *func) {
return log_internal_realm(level, ENOMEM, file, line, func, "Out of memory.");
return log_internal(level, ENOMEM, file, line, func, "Out of memory.");
}
int log_format_iovec(
@ -941,13 +933,12 @@ int log_struct_internal(
const char *func,
const char *format, ...) {
LogRealm realm = LOG_REALM_REMOVE_LEVEL(level);
char buf[LINE_MAX];
bool found = false;
PROTECT_ERRNO;
va_list ap;
if (_likely_(LOG_PRI(level) > log_max_level[realm]) ||
if (_likely_(LOG_PRI(level) > log_max_level) ||
log_target == LOG_TARGET_NULL)
return -ERRNO_VALUE(error);
@ -1041,12 +1032,11 @@ int log_struct_iovec_internal(
const struct iovec input_iovec[],
size_t n_input_iovec) {
LogRealm realm = LOG_REALM_REMOVE_LEVEL(level);
PROTECT_ERRNO;
size_t i;
char *m;
if (_likely_(LOG_PRI(level) > log_max_level[realm]) ||
if (_likely_(LOG_PRI(level) > log_max_level) ||
log_target == LOG_TARGET_NULL)
return -ERRNO_VALUE(error);
@ -1101,14 +1091,14 @@ int log_set_target_from_string(const char *e) {
return 0;
}
int log_set_max_level_from_string_realm(LogRealm realm, const char *e) {
int log_set_max_level_from_string(const char *e) {
int t;
t = log_level_from_string(e);
if (t < 0)
return -EINVAL;
log_set_max_level_realm(realm, t);
log_set_max_level(t);
return 0;
}
@ -1167,17 +1157,17 @@ static int parse_proc_cmdline_item(const char *key, const char *value, void *dat
return 0;
}
void log_parse_environment_realm(LogRealm realm) {
void log_parse_environment(void) {
if (getpid_cached() == 1 || get_ctty_devnr(0, NULL) < 0)
/* Only try to read the command line in daemons. We assume that anything that has a
* controlling tty is user stuff. For PID1 we do a special check in case it hasn't
* closed the console yet. */
(void) proc_cmdline_parse(parse_proc_cmdline_item, NULL, PROC_CMDLINE_STRIP_RD_PREFIX);
log_parse_environment_cli_realm(realm);
log_parse_environment_cli();
}
void log_parse_environment_cli_realm(LogRealm realm) {
void log_parse_environment_cli(void) {
/* Do not call from library code. */
const char *e;
@ -1187,7 +1177,7 @@ void log_parse_environment_cli_realm(LogRealm realm) {
log_warning("Failed to parse log target '%s'. Ignoring.", e);
e = getenv("SYSTEMD_LOG_LEVEL");
if (e && log_set_max_level_from_string_realm(realm, e) < 0)
if (e && log_set_max_level_from_string(e) < 0)
log_warning("Failed to parse log level '%s'. Ignoring.", e);
e = getenv("SYSTEMD_LOG_COLOR");
@ -1211,8 +1201,8 @@ LogTarget log_get_target(void) {
return log_target;
}
int log_get_max_level_realm(LogRealm realm) {
return log_max_level[realm];
int log_get_max_level(void) {
return log_max_level;
}
void log_show_color(bool b) {
@ -1347,7 +1337,7 @@ int log_syntax_internal(
va_list ap;
const char *unit_fmt = NULL;
if (_likely_(LOG_PRI(level) > log_max_level[LOG_REALM_SYSTEMD]) ||
if (_likely_(LOG_PRI(level) > log_max_level) ||
log_target == LOG_TARGET_NULL)
return -ERRNO_VALUE(error);
@ -1363,7 +1353,7 @@ int log_syntax_internal(
if (config_file) {
if (config_line > 0)
return log_struct_internal(
LOG_REALM_PLUS_LEVEL(LOG_REALM_SYSTEMD, level),
level,
error,
file, line, func,
"MESSAGE_ID=" SD_MESSAGE_INVALID_CONFIGURATION_STR,
@ -1374,7 +1364,7 @@ int log_syntax_internal(
NULL);
else
return log_struct_internal(
LOG_REALM_PLUS_LEVEL(LOG_REALM_SYSTEMD, level),
level,
error,
file, line, func,
"MESSAGE_ID=" SD_MESSAGE_INVALID_CONFIGURATION_STR,
@ -1384,7 +1374,7 @@ int log_syntax_internal(
NULL);
} else if (unit)
return log_struct_internal(
LOG_REALM_PLUS_LEVEL(LOG_REALM_SYSTEMD, level),
level,
error,
file, line, func,
"MESSAGE_ID=" SD_MESSAGE_INVALID_CONFIGURATION_STR,
@ -1393,7 +1383,7 @@ int log_syntax_internal(
NULL);
else
return log_struct_internal(
LOG_REALM_PLUS_LEVEL(LOG_REALM_SYSTEMD, level),
level,
error,
file, line, func,
"MESSAGE_ID=" SD_MESSAGE_INVALID_CONFIGURATION_STR,

View File

@ -12,16 +12,6 @@
struct iovec;
struct signalfd_siginfo;
typedef enum LogRealm {
LOG_REALM_SYSTEMD,
LOG_REALM_UDEV,
_LOG_REALM_MAX,
} LogRealm;
#ifndef LOG_REALM
# define LOG_REALM LOG_REALM_SYSTEMD
#endif
typedef enum LogTarget{
LOG_TARGET_CONSOLE,
LOG_TARGET_CONSOLE_PREFIXED,
@ -37,31 +27,22 @@ typedef enum LogTarget{
} LogTarget;
/* Note to readers: << and >> have lower precedence than & and | */
#define LOG_REALM_PLUS_LEVEL(realm, level) ((realm) << 10 | (level))
#define LOG_REALM_REMOVE_LEVEL(realm_level) ((realm_level) >> 10)
#define SYNTHETIC_ERRNO(num) (1 << 30 | (num))
#define IS_SYNTHETIC_ERRNO(val) ((val) >> 30 & 1)
#define ERRNO_VALUE(val) (abs(val) & 255)
const char *log_target_to_string(LogTarget target) _const_;
LogTarget log_target_from_string(const char *s) _pure_;
void log_set_target(LogTarget target);
int log_set_target_from_string(const char *e);
LogTarget log_get_target(void) _pure_;
void log_set_max_level_realm(LogRealm realm, int level);
#define log_set_max_level(level) \
log_set_max_level_realm(LOG_REALM, (level))
static inline void log_set_max_level_all_realms(int level) {
for (LogRealm realm = 0; realm < _LOG_REALM_MAX; realm++)
log_set_max_level_realm(realm, level);
}
void log_set_max_level(int level);
int log_set_max_level_from_string(const char *e);
int log_get_max_level(void) _pure_;
void log_set_facility(int facility);
int log_set_target_from_string(const char *e);
int log_set_max_level_from_string_realm(LogRealm realm, const char *e);
#define log_set_max_level_from_string(e) \
log_set_max_level_from_string_realm(LOG_REALM, (e))
void log_show_color(bool b);
bool log_get_show_color(void) _pure_;
void log_show_location(bool b);
@ -76,15 +57,9 @@ int log_show_location_from_string(const char *e);
int log_show_time_from_string(const char *e);
int log_show_tid_from_string(const char *e);
LogTarget log_get_target(void) _pure_;
int log_get_max_level_realm(LogRealm realm) _pure_;
#define log_get_max_level() \
log_get_max_level_realm(LOG_REALM)
/* Functions below that open and close logs or configure logging based on the
* environment should not be called from library code this is always a job
* for the application itself.
*/
* for the application itself. */
assert_cc(STRLEN(__FILE__) > STRLEN(RELATIVE_SOURCE_PATH) + 1);
#define PROJECT_FILE (&__FILE__[STRLEN(RELATIVE_SOURCE_PATH) + 1])
@ -93,12 +68,8 @@ int log_open(void);
void log_close(void);
void log_forget_fds(void);
void log_parse_environment_realm(LogRealm realm);
void log_parse_environment_cli_realm(LogRealm realm);
#define log_parse_environment() \
log_parse_environment_realm(LOG_REALM)
#define log_parse_environment_cli() \
log_parse_environment_cli_realm(LOG_REALM)
void log_parse_environment(void);
void log_parse_environment_cli(void);
int log_dispatch_internal(
int level,
@ -112,17 +83,15 @@ int log_dispatch_internal(
const char *extra_field,
char *buffer);
int log_internal_realm(
int log_internal(
int level,
int error,
const char *file,
int line,
const char *func,
const char *format, ...) _printf_(6,7);
#define log_internal(level, ...) \
log_internal_realm(LOG_REALM_PLUS_LEVEL(LOG_REALM, (level)), __VA_ARGS__)
int log_internalv_realm(
int log_internalv(
int level,
int error,
const char *file,
@ -130,10 +99,7 @@ int log_internalv_realm(
const char *func,
const char *format,
va_list ap) _printf_(6,0);
#define log_internalv(level, ...) \
log_internalv_realm(LOG_REALM_PLUS_LEVEL(LOG_REALM, (level)), __VA_ARGS__)
/* Realm is fixed to LOG_REALM_SYSTEMD for those */
int log_object_internalv(
int level,
int error,
@ -201,32 +167,23 @@ int log_dump_internal(
char *buffer);
/* Logging for various assertions */
_noreturn_ void log_assert_failed_realm(
LogRealm realm,
_noreturn_ void log_assert_failed(
const char *text,
const char *file,
int line,
const char *func);
#define log_assert_failed(text, ...) \
log_assert_failed_realm(LOG_REALM, (text), __VA_ARGS__)
_noreturn_ void log_assert_failed_unreachable_realm(
LogRealm realm,
_noreturn_ void log_assert_failed_unreachable(
const char *text,
const char *file,
int line,
const char *func);
#define log_assert_failed_unreachable(text, ...) \
log_assert_failed_unreachable_realm(LOG_REALM, (text), __VA_ARGS__)
void log_assert_failed_return_realm(
LogRealm realm,
void log_assert_failed_return(
const char *text,
const char *file,
int line,
const char *func);
#define log_assert_failed_return(text, ...) \
log_assert_failed_return_realm(LOG_REALM, (text), __VA_ARGS__)
#define log_dispatch(level, error, buffer) \
log_dispatch_internal(level, error, PROJECT_FILE, __LINE__, __func__, NULL, NULL, NULL, NULL, buffer)
@ -267,29 +224,23 @@ int log_emergency_level(void);
#endif
/* Structured logging */
#define log_struct_errno(level, error, ...) \
log_struct_internal(LOG_REALM_PLUS_LEVEL(LOG_REALM, level), \
error, PROJECT_FILE, __LINE__, __func__, __VA_ARGS__, NULL)
#define log_struct_errno(level, error, ...) \
log_struct_internal(level, error, PROJECT_FILE, __LINE__, __func__, __VA_ARGS__, NULL)
#define log_struct(level, ...) log_struct_errno(level, 0, __VA_ARGS__)
#define log_struct_iovec_errno(level, error, iovec, n_iovec) \
log_struct_iovec_internal(LOG_REALM_PLUS_LEVEL(LOG_REALM, level), \
error, PROJECT_FILE, __LINE__, __func__, iovec, n_iovec)
log_struct_iovec_internal(level, error, PROJECT_FILE, __LINE__, __func__, iovec, n_iovec)
#define log_struct_iovec(level, iovec, n_iovec) log_struct_iovec_errno(level, 0, iovec, n_iovec)
/* This modifies the buffer passed! */
#define log_dump(level, buffer) \
log_dump_internal(LOG_REALM_PLUS_LEVEL(LOG_REALM, level), \
0, PROJECT_FILE, __LINE__, __func__, buffer)
#define log_dump(level, buffer) \
log_dump_internal(level, 0, PROJECT_FILE, __LINE__, __func__, buffer)
#define log_oom() log_oom_internal(LOG_REALM_PLUS_LEVEL(LOG_REALM, LOG_ERR), PROJECT_FILE, __LINE__, __func__)
#define log_oom_debug() log_oom_internal(LOG_REALM_PLUS_LEVEL(LOG_REALM, LOG_DEBUG), PROJECT_FILE, __LINE__, __func__)
#define log_oom() log_oom_internal(LOG_ERR, PROJECT_FILE, __LINE__, __func__)
#define log_oom_debug() log_oom_internal(LOG_DEBUG, PROJECT_FILE, __LINE__, __func__)
bool log_on_console(void) _pure_;
const char *log_target_to_string(LogTarget target) _const_;
LogTarget log_target_from_string(const char *s) _pure_;
/* Helper to prepare various field for structured logging */
#define LOG_MESSAGE(fmt, ...) "MESSAGE=" fmt, ##__VA_ARGS__

View File

@ -3891,7 +3891,7 @@ int json_log_internal(
if (source && source_line > 0 && source_column > 0)
return log_struct_internal(
LOG_REALM_PLUS_LEVEL(LOG_REALM_SYSTEMD, level),
level,
error,
file, line, func,
"MESSAGE_ID=" SD_MESSAGE_INVALID_CONFIGURATION_STR,
@ -3902,7 +3902,7 @@ int json_log_internal(
NULL);
else if (source_line > 0 && source_column > 0)
return log_struct_internal(
LOG_REALM_PLUS_LEVEL(LOG_REALM_SYSTEMD, level),
level,
error,
file, line, func,
"MESSAGE_ID=" SD_MESSAGE_INVALID_CONFIGURATION_STR,
@ -3912,7 +3912,7 @@ int json_log_internal(
NULL);
else
return log_struct_internal(
LOG_REALM_PLUS_LEVEL(LOG_REALM_SYSTEMD, level),
level,
error,
file, line, func,
"MESSAGE_ID=" SD_MESSAGE_INVALID_CONFIGURATION_STR,

View File

@ -9,15 +9,6 @@
#include "string-util.h"
#include "util.h"
assert_cc(LOG_REALM_REMOVE_LEVEL(LOG_REALM_PLUS_LEVEL(LOG_REALM_SYSTEMD, LOG_FTP | LOG_DEBUG))
== LOG_REALM_SYSTEMD);
assert_cc(LOG_REALM_REMOVE_LEVEL(LOG_REALM_PLUS_LEVEL(LOG_REALM_UDEV, LOG_LOCAL7 | LOG_DEBUG))
== LOG_REALM_UDEV);
assert_cc((LOG_REALM_PLUS_LEVEL(LOG_REALM_SYSTEMD, LOG_LOCAL3 | LOG_DEBUG) & LOG_FACMASK)
== LOG_LOCAL3);
assert_cc((LOG_REALM_PLUS_LEVEL(LOG_REALM_UDEV, LOG_USER | LOG_INFO) & LOG_PRIMASK)
== LOG_INFO);
assert_cc(IS_SYNTHETIC_ERRNO(SYNTHETIC_ERRNO(EINVAL)));
assert_cc(!IS_SYNTHETIC_ERRNO(EINVAL));
assert_cc(IS_SYNTHETIC_ERRNO(SYNTHETIC_ERRNO(0)));