From: "Daniel P. Berrange" <berrange(a)redhat.com>
Probe to see if the systemd journal is accessible, and if
so enable logging to the journal by default, rather than
stderr (current default under systemd).
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
daemon/libvirtd.c | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/daemon/libvirtd.c b/daemon/libvirtd.c
index 0151124..e9e2e59 100644
--- a/daemon/libvirtd.c
+++ b/daemon/libvirtd.c
@@ -636,7 +636,21 @@ daemonSetupLogging(struct daemonConfig *config,
virLogParseOutputs(config->log_outputs);
/*
- * If no defined outputs, then direct to libvirtd.log when running
+ * If no defined outputs, then first try to direct it
+ * to the systemd journal (if it exists)....
+ */
+ if (virLogGetNbOutputs() == 0) {
+ char *tmp;
+ if (access("/run/systemd/journal/socket", W_OK) >= 0) {
+ if (virAsprintf(&tmp, "%d:journald",
virLogGetDefaultPriority()) < 0)
+ goto no_memory;
+ virLogParseOutputs(tmp);
+ VIR_FREE(tmp);
+ }
+ }
+
+ /*
+ * otherwise direct to libvirtd.log when running
* as daemon. Otherwise the default output is stderr.
*/
if (virLogGetNbOutputs() == 0) {
--
1.7.11.4