return 0;
}
- if (!IN_SET(log_target, LOG_TARGET_AUTO, LOG_TARGET_SAFE) ||
+ if ((log_target != LOG_TARGET_AUTO && log_target != LOG_TARGET_SAFE) ||
getpid() == 1 ||
isatty(STDERR_FILENO) <= 0) {
#if 0 /// elogind does not support logging to systemd-journald
- if (IN_SET(log_target, LOG_TARGET_AUTO,
- LOG_TARGET_JOURNAL_OR_KMSG,
- LOG_TARGET_JOURNAL)) {
+ if (log_target == LOG_TARGET_AUTO ||
+ log_target == LOG_TARGET_JOURNAL_OR_KMSG ||
+ log_target == LOG_TARGET_JOURNAL) {
r = log_open_journal();
if (r >= 0) {
log_close_syslog();
}
#endif // 0
- if (IN_SET(log_target, LOG_TARGET_SYSLOG_OR_KMSG,
- LOG_TARGET_SYSLOG)) {
+ if (log_target == LOG_TARGET_SYSLOG_OR_KMSG ||
+ log_target == LOG_TARGET_SYSLOG) {
r = log_open_syslog();
if (r >= 0) {
log_close_journal();
}
}
- if (IN_SET(log_target, LOG_TARGET_AUTO,
- LOG_TARGET_SAFE,
- LOG_TARGET_JOURNAL_OR_KMSG,
- LOG_TARGET_SYSLOG_OR_KMSG,
- LOG_TARGET_KMSG)) {
+ if (log_target == LOG_TARGET_AUTO ||
+ log_target == LOG_TARGET_SAFE ||
+ log_target == LOG_TARGET_JOURNAL_OR_KMSG ||
+ log_target == LOG_TARGET_SYSLOG_OR_KMSG ||
+ log_target == LOG_TARGET_KMSG) {
r = log_open_kmsg();
if (r >= 0) {
log_close_journal();
line ? "CODE_LINE=" : "",
line ? 1 : 0, line, /* %.0d means no output too, special case for 0 */
line ? "\n" : "",
- isempty(func) ? "" : "CODE_FUNC=",
+ isempty(func) ? "" : "CODE_FUNCTION=",
isempty(func) ? "" : func,
isempty(func) ? "" : "\n",
error ? "ERRNO=" : "",
*(e++) = 0;
#if 0 /// elogind does not support logging to systemd-journald
- if (IN_SET(log_target, LOG_TARGET_AUTO,
- LOG_TARGET_JOURNAL_OR_KMSG,
- LOG_TARGET_JOURNAL)) {
+ if (log_target == LOG_TARGET_AUTO ||
+ log_target == LOG_TARGET_JOURNAL_OR_KMSG ||
+ log_target == LOG_TARGET_JOURNAL) {
k = write_to_journal(level, error, file, line, func, object_field, object, extra_field, extra, buffer);
if (k < 0) {
}
#endif // 0
- if (IN_SET(log_target, LOG_TARGET_SYSLOG_OR_KMSG,
- LOG_TARGET_SYSLOG)) {
+ if (log_target == LOG_TARGET_SYSLOG_OR_KMSG ||
+ log_target == LOG_TARGET_SYSLOG) {
k = write_to_syslog(level, error, file, line, func, buffer);
if (k < 0) {
}
if (k <= 0 &&
- IN_SET(log_target, LOG_TARGET_AUTO,
- LOG_TARGET_SAFE,
- LOG_TARGET_SYSLOG_OR_KMSG,
- LOG_TARGET_JOURNAL_OR_KMSG,
- LOG_TARGET_KMSG)) {
+ (log_target == LOG_TARGET_AUTO ||
+ log_target == LOG_TARGET_SAFE ||
+ log_target == LOG_TARGET_SYSLOG_OR_KMSG ||
+ log_target == LOG_TARGET_JOURNAL_OR_KMSG ||
+ log_target == LOG_TARGET_KMSG)) {
k = write_to_kmsg(level, error, file, line, func, buffer);
if (k < 0) {
level = log_facility | LOG_PRI(level);
#if 0 /// elogind does not support logging to systemd-journald
- if (IN_SET(log_target, LOG_TARGET_AUTO,
- LOG_TARGET_JOURNAL_OR_KMSG,
- LOG_TARGET_JOURNAL) &&
+ if ((log_target == LOG_TARGET_AUTO ||
+ log_target == LOG_TARGET_JOURNAL_OR_KMSG ||
+ log_target == LOG_TARGET_JOURNAL) &&
journal_fd >= 0) {
char header[LINE_MAX];
struct iovec iovec[17] = {};
if (streq(key, "debug") && !value)
log_set_max_level(LOG_DEBUG);
- else if (proc_cmdline_key_streq(key, "systemd.log_target")) {
-
- if (proc_cmdline_value_missing(key, value))
- return 0;
+ else if (streq(key, "systemd.log_target") && value) {
if (log_set_target_from_string(value) < 0)
log_warning("Failed to parse log target '%s'. Ignoring.", value);
- } else if (proc_cmdline_key_streq(key, "systemd.log_level")) {
-
- if (proc_cmdline_value_missing(key, value))
- return 0;
+ } else if (streq(key, "systemd.log_level") && value) {
if (log_set_max_level_from_string(value) < 0)
log_warning("Failed to parse log level '%s'. Ignoring.", value);
- } else if (proc_cmdline_key_streq(key, "systemd.log_color")) {
+ } else if (streq(key, "systemd.log_color") && value) {
- if (log_show_color_from_string(value ?: "1") < 0)
+ if (log_show_color_from_string(value) < 0)
log_warning("Failed to parse log color setting '%s'. Ignoring.", value);
- } else if (proc_cmdline_key_streq(key, "systemd.log_location")) {
+ } else if (streq(key, "systemd.log_location") && value) {
- if (log_show_location_from_string(value ?: "1") < 0)
+ if (log_show_location_from_string(value) < 0)
log_warning("Failed to parse log location setting '%s'. Ignoring.", value);
}
const char *e;
if (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. */
- (void) proc_cmdline_parse(parse_proc_cmdline_item, NULL, PROC_CMDLINE_STRIP_RD_PREFIX);
+ /* Only try to read the command line in daemons.
+ We assume that anything that has a controlling
+ tty is user stuff. */
+ (void) parse_proc_cmdline(parse_proc_cmdline_item, NULL, true);
e = secure_getenv("SYSTEMD_LOG_TARGET");
if (e && log_set_target_from_string(e) < 0)
}
bool log_on_console(void) {
- if (IN_SET(log_target, LOG_TARGET_CONSOLE,
- LOG_TARGET_CONSOLE_PREFIXED))
+ if (log_target == LOG_TARGET_CONSOLE ||
+ log_target == LOG_TARGET_CONSOLE_PREFIXED)
return true;
return syslog_fd < 0 && kmsg_fd < 0 && journal_fd < 0;
PROTECT_ERRNO;
char buffer[LINE_MAX];
+ int r;
va_list ap;
- const char *unit_fmt = NULL;
if (error < 0)
error = -error;
va_end(ap);
if (unit)
- unit_fmt = getpid() == 1 ? "UNIT=%s" : "USER_UNIT=%s";
-
- return log_struct_internal(
- level, error,
- file, line, func,
- "MESSAGE_ID=" SD_MESSAGE_INVALID_CONFIGURATION_STR,
- "CONFIG_FILE=%s", config_file,
- "CONFIG_LINE=%u", config_line,
- LOG_MESSAGE("%s:%u: %s", config_file, config_line, buffer),
- unit_fmt, unit,
- NULL);
+ r = log_struct_internal(
+ level, error,
+ file, line, func,
+ getpid() == 1 ? "UNIT=%s" : "USER_UNIT=%s", unit,
+ LOG_MESSAGE_ID(SD_MESSAGE_INVALID_CONFIGURATION),
+ "CONFIG_FILE=%s", config_file,
+ "CONFIG_LINE=%u", config_line,
+ LOG_MESSAGE("[%s:%u] %s", config_file, config_line, buffer),
+ NULL);
+ else
+ r = log_struct_internal(
+ level, error,
+ file, line, func,
+ LOG_MESSAGE_ID(SD_MESSAGE_INVALID_CONFIGURATION),
+ "CONFIG_FILE=%s", config_file,
+ "CONFIG_LINE=%u", config_line,
+ LOG_MESSAGE("[%s:%u] %s", config_file, config_line, buffer),
+ NULL);
+
+ return r;
}
return r;
log_struct(s->class == SESSION_BACKGROUND ? LOG_DEBUG : LOG_INFO,
- "MESSAGE_ID=" SD_MESSAGE_SESSION_START_STR,
+ LOG_MESSAGE_ID(SD_MESSAGE_SESSION_START),
"SESSION_ID=%s", s->id,
"USER_ID=%s", s->user->name,
"LEADER="PID_FMT, s->leader,
/* Send signals */
session_send_signal(s, true);
- user_send_changed(s->user, "Display", NULL);
+ user_send_changed(s->user, "Sessions", "Display", NULL);
if (s->seat) {
if (s->seat->active == s)
- seat_send_changed(s->seat, "ActiveSession", NULL);
+ seat_send_changed(s->seat, "Sessions", "ActiveSession", NULL);
+ else
+ seat_send_changed(s->seat, "Sessions", NULL);
}
return 0;
if (s->started)
log_struct(s->class == SESSION_BACKGROUND ? LOG_DEBUG : LOG_INFO,
- "MESSAGE_ID=" SD_MESSAGE_SESSION_STOP_STR,
+ LOG_MESSAGE_ID(SD_MESSAGE_SESSION_STOP),
"SESSION_ID=%s", s->id,
"USER_ID=%s", s->user->name,
"LEADER="PID_FMT, s->leader,
seat_set_active(s->seat, NULL);
seat_save(s->seat);
+ seat_send_changed(s->seat, "Sessions", NULL);
}
user_save(s->user);
- user_send_changed(s->user, "Display", NULL);
+ user_send_changed(s->user, "Sessions", "Display", NULL);
return 0;
}