From 45278eaa19b55cab2b750d8937c4d55b4ff7c821 Mon Sep 17 00:00:00 2001
From: Ivan Shapovalov <intelfx100@gmail.com>
Date: Wed, 29 Apr 2015 01:20:08 +0300
Subject: [PATCH] contrib/systemd: add a sample systemd unit file and a logger
 configuration

The added logger configuration (--log-config or log_config:) uses
systemd's python bindings to pass messages directly to the journal.

Signed-off-by: Ivan Shapovalov <intelfx100@gmail.com>
---
 contrib/systemd/log_config.yaml | 23 +++++++++++++++++++++++
 contrib/systemd/synapse.service | 12 ++++++++++++
 2 files changed, 35 insertions(+)
 create mode 100644 contrib/systemd/log_config.yaml
 create mode 100644 contrib/systemd/synapse.service

diff --git a/contrib/systemd/log_config.yaml b/contrib/systemd/log_config.yaml
new file mode 100644
index 0000000000..e16fb5456a
--- /dev/null
+++ b/contrib/systemd/log_config.yaml
@@ -0,0 +1,23 @@
+version: 1
+
+# In systemd's journal, loglevel is implicitly stored, so let's omit it
+# from the message text.
+formatters:
+    journal_fmt:
+        format: '%(name)s: [%(request)s] %(message)s'
+
+filters:
+    context:
+        (): synapse.util.logcontext.LoggingContextFilter
+        request: ""
+
+handlers:
+    journal:
+        class: systemd.journal.JournalHandler
+        formatter: journal_fmt
+        filters: [context]
+        SYSLOG_IDENTIFIER: synapse
+
+root:
+    level: INFO
+    handlers: [journal]
diff --git a/contrib/systemd/synapse.service b/contrib/systemd/synapse.service
new file mode 100644
index 0000000000..1eca13a37e
--- /dev/null
+++ b/contrib/systemd/synapse.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Synapse Matrix homeserver
+
+[Service]
+Type=simple
+User=synapse
+Group=synapse
+WorkingDirectory=/var/lib/synapse
+ExecStart=/usr/bin/python2.7 -m synapse.app.homeserver --config-path=/etc/synapse/homeserver.yaml --log-config=/etc/synapse/log_config.yaml
+
+[Install]
+WantedBy=multi-user.target
-- 
GitLab