analyze: add new set-log-target subcommand

We already have the property writable, hence let's add a command to set
it.
This commit is contained in:
Lennart Poettering 2015-09-30 15:01:01 +02:00
parent 737af7347c
commit 2ca2a91cf1
2 changed files with 41 additions and 8 deletions

View file

@ -168,6 +168,13 @@
<option>--log-level=</option> described in <option>--log-level=</option> described in
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>).</para> <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>).</para>
<para><command>systemd-analyze set-log-target
<replaceable>TARGET</replaceable></command> changes the current log
target of the <command>systemd</command> daemon to
<replaceable>TARGET</replaceable> (accepts the same values as
<option>--log-target=</option> described in
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>).</para>
<para><command>systemd-analyze verify</command> will load unit <para><command>systemd-analyze verify</command> will load unit
files and print warnings if any errors are detected. Files files and print warnings if any errors are detected. Files
specified on the command line will be loaded, but also any other specified on the command line will be loaded, but also any other

View file

@ -1217,10 +1217,8 @@ static int dump(sd_bus *bus, char **args) {
&error, &error,
&reply, &reply,
""); "");
if (r < 0) { if (r < 0)
log_error("Failed issue method call: %s", bus_error_message(&error, -r)); return log_error_errno(r, "Failed issue method call: %s", bus_error_message(&error, r));
return r;
}
r = sd_bus_message_read(reply, "s", &text); r = sd_bus_message_read(reply, "s", &text);
if (r < 0) if (r < 0)
@ -1251,11 +1249,36 @@ static int set_log_level(sd_bus *bus, char **args) {
&error, &error,
"s", "s",
args[0]); args[0]);
if (r < 0) { if (r < 0)
log_error("Failed to issue method call: %s", bus_error_message(&error, -r)); return log_error_errno(r, "Failed to issue method call: %s", bus_error_message(&error, r));
return -EIO;
return 0;
}
static int set_log_target(sd_bus *bus, char **args) {
_cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL;
int r;
assert(bus);
assert(args);
if (strv_length(args) != 1) {
log_error("This command expects one argument only.");
return -E2BIG;
} }
r = sd_bus_set_property(
bus,
"org.freedesktop.systemd1",
"/org/freedesktop/systemd1",
"org.freedesktop.systemd1.Manager",
"LogTarget",
&error,
"s",
args[0]);
if (r < 0)
return log_error_errno(r, "Failed to issue method call: %s", bus_error_message(&error, r));
return 0; return 0;
} }
@ -1285,7 +1308,8 @@ static void help(void) {
" critical-chain Print a tree of the time critical chain of units\n" " critical-chain Print a tree of the time critical chain of units\n"
" plot Output SVG graphic showing service initialization\n" " plot Output SVG graphic showing service initialization\n"
" dot Output dependency graph in dot(1) format\n" " dot Output dependency graph in dot(1) format\n"
" set-log-level LEVEL Set logging threshold for systemd\n" " set-log-level LEVEL Set logging threshold for manager\n"
" set-log-target TARGET Set logging target for manager\n"
" dump Output state serialization of service manager\n" " dump Output state serialization of service manager\n"
" verify FILE... Check unit files for correctness\n" " verify FILE... Check unit files for correctness\n"
, program_invocation_short_name); , program_invocation_short_name);
@ -1452,6 +1476,8 @@ int main(int argc, char *argv[]) {
r = dump(bus, argv+optind+1); r = dump(bus, argv+optind+1);
else if (streq(argv[optind], "set-log-level")) else if (streq(argv[optind], "set-log-level"))
r = set_log_level(bus, argv+optind+1); r = set_log_level(bus, argv+optind+1);
else if (streq(argv[optind], "set-log-target"))
r = set_log_target(bus, argv+optind+1);
else else
log_error("Unknown operation '%s'.", argv[optind]); log_error("Unknown operation '%s'.", argv[optind]);
} }