__copyright__ = "Copyright 2013"
__license__ = "LGPL-3"
-__version__ = "1.0"
+__version__ = "1.2"
from contextlib import contextmanager
import sys
import time
import socket
+import syslog
verbose = False
def log(conf, msg, id=None):
"""Write message to log file"""
+ # Prepend ID to msg
+ if id is not None:
+ msg = ("ID %s: " % id) + msg
+
+ if conf.getlogdir() == 'syslog':
+ syslog.syslog(msg)
+ return
+
fn = conf.getlogdir() + "/smailq.log"
with open(fn, 'a') as f:
fcntl.lockf(f, fcntl.LOCK_EX)
- # Prepend ID to msg
- if id is not None:
- msg = ("ID %s: " % id) + msg
+
# Prepend time to msg
msg = time.strftime("%Y-%m-%d %H:%M:%S: ", time.localtime()) + msg
OPTIONS:
-C, --config=FILE
- Use the given configuration file instead of "$HOME/.smailq.conf".
+ Use the given configuration file.
-q, --quiet
Do not print info messages.
assert(False)
except getopt.GetoptError as e:
- printerr("Error parsing arguments:", e)
+ printerr("Error parsing arguments: " + str(e))
usage()
sys.exit(os.EX_USAGE)
printerr("Data directory does not exist: " + conf.getdatadir())
sys.exit(os.EX_IOERR)
- if not os.path.isdir(conf.getlogdir()):
- printerr("Log directory does not exist: " + conf.getlogdir())
- sys.exit(os.EX_IOERR)
+ if conf.getlogdir() == 'syslog':
+ syslog.openlog('smailq', 0, syslog.LOG_MAIL)
+ elif not os.path.isdir(conf.getlogdir()):
+ printinfo('Creating logdir: ' + conf.getlogdir())
+ os.mkdir(conf.getlogdir())
except Exception as e:
- printerr("Error reading config file:", e)
+ printerr("Error reading config file: " + str(e))
sys.exit(os.EX_IOERR)
try: