aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2021-01-04 23:22:02 +0100
committerAnton Khirnov <anton@khirnov.net>2021-01-04 23:22:02 +0100
commita4b329e25778a480c08bed95d6daa63931b4a68c (patch)
tree27592a1272e46e9f5e4795ffa04d4d45574755da
parent958587713c55de799deed4e1fd4eee21ccf09f92 (diff)
Log to syslog, with optional stderr.
-rwxr-xr-xfshare.py17
1 files changed, 16 insertions, 1 deletions
diff --git a/fshare.py b/fshare.py
index ccd3ae6..7ad2f9c 100755
--- a/fshare.py
+++ b/fshare.py
@@ -24,6 +24,7 @@ import os.path
from http import HTTPStatus
import http.server as hs
import logging
+import logging.handlers
import secrets
import shutil
import socket
@@ -291,6 +292,7 @@ group.add_argument('-4', '--ipv4', action = 'store_true')
group.add_argument('-6', '--ipv6', action = 'store_true')
parser.add_argument('-l', '--loglevel', default = 'WARNING')
+parser.add_argument('-d', '--debug', action = 'store_true', help = 'log to stderr')
parser.add_argument('state_file')
parser.add_argument('data_dir')
@@ -298,8 +300,21 @@ parser.add_argument('data_dir')
args = parser.parse_args(sys.argv[1:])
# configure logging
+progname = os.path.basename(sys.argv[0])
logging.basicConfig(stream = sys.stderr, level = args.loglevel)
-logger = logging.getLogger(os.path.basename(sys.argv[0]))
+logger = logging.getLogger(progname)
+
+formatter = logging.Formatter(fmt = progname + ': %(message)s')
+
+syslog = logging.handlers.SysLogHandler('/dev/log')
+
+handlers = [syslog]
+if args.debug:
+ handlers.append(logging.StreamHandler())
+
+for h in handlers:
+ h.setFormatter(formatter)
+ logger.addHandler(h)
# read the state file
state = PersistentState(args.state_file)