Better logging in runner script
This commit is contained in:
1 parent
4f90de4cf8
commit
a6e1386584
1 file changed
+23
-9
+23
-9
@@ -1,5 +1,7 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
from logging import handlers
|
||||||
from os.path import dirname
|
from os.path import dirname
|
||||||
|
import logging
|
||||||
import os
|
import os
|
||||||
import signal
|
import signal
|
||||||
import subprocess
|
import subprocess
|
||||||
@@ -20,15 +22,23 @@ class Loader(object):
|
|||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
|
||||||
from couchpotato.core.logger import CPLog
|
|
||||||
self.log = CPLog(__name__)
|
|
||||||
|
|
||||||
# Get options via arg
|
# Get options via arg
|
||||||
from couchpotato.runner import getOptions
|
from couchpotato.runner import getOptions
|
||||||
from couchpotato.core.helpers.variable import getDataDir
|
from couchpotato.core.helpers.variable import getDataDir
|
||||||
self.options = getOptions(base_path, sys.argv[1:])
|
self.options = getOptions(base_path, sys.argv[1:])
|
||||||
self.data_dir = getDataDir()
|
self.data_dir = getDataDir()
|
||||||
|
|
||||||
|
# Logging
|
||||||
|
from couchpotato.core.logger import CPLog
|
||||||
|
self.log = CPLog(__name__)
|
||||||
|
|
||||||
|
if self.options.daemon:
|
||||||
|
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s', '%H:%M:%S')
|
||||||
|
hdlr = handlers.RotatingFileHandler(os.path.join(self.data_dir, 'logs', 'error.log'), 'a', 500000, 10)
|
||||||
|
hdlr.setLevel(logging.CRITICAL)
|
||||||
|
hdlr.setFormatter(formatter)
|
||||||
|
self.log.logger.addHandler(hdlr)
|
||||||
|
|
||||||
def addSignals(self):
|
def addSignals(self):
|
||||||
|
|
||||||
signal.signal(signal.SIGINT, self.onExit)
|
signal.signal(signal.SIGINT, self.onExit)
|
||||||
@@ -45,7 +55,7 @@ class Loader(object):
|
|||||||
fireEvent('app.crappy_shutdown', single = True)
|
fireEvent('app.crappy_shutdown', single = True)
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
|
print 'running' * 20
|
||||||
self.addSignals()
|
self.addSignals()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@@ -54,7 +64,7 @@ class Loader(object):
|
|||||||
except (KeyboardInterrupt, SystemExit):
|
except (KeyboardInterrupt, SystemExit):
|
||||||
pass
|
pass
|
||||||
except:
|
except:
|
||||||
self.log.error(traceback.format_exc())
|
self.log.critical(traceback.format_exc())
|
||||||
|
|
||||||
if self.do_restart:
|
if self.do_restart:
|
||||||
self.restart()
|
self.restart()
|
||||||
@@ -66,12 +76,12 @@ class Loader(object):
|
|||||||
if self.runAsDaemon():
|
if self.runAsDaemon():
|
||||||
self.daemon.delpid()
|
self.daemon.delpid()
|
||||||
except:
|
except:
|
||||||
self.log.error(traceback.format_exc())
|
self.log.critical(traceback.format_exc())
|
||||||
|
|
||||||
args = [sys.executable] + [os.path.join(base_path, __file__)] + sys.argv[1:]
|
args = [sys.executable] + [os.path.join(base_path, __file__)] + sys.argv[1:]
|
||||||
subprocess.Popen(args)
|
subprocess.Popen(args)
|
||||||
except:
|
except:
|
||||||
self.log.error(traceback.format_exc())
|
self.log.critical(traceback.format_exc())
|
||||||
|
|
||||||
def daemonize(self):
|
def daemonize(self):
|
||||||
|
|
||||||
@@ -80,8 +90,10 @@ class Loader(object):
|
|||||||
from daemon import Daemon
|
from daemon import Daemon
|
||||||
self.daemon = Daemon(self.options.pid_file)
|
self.daemon = Daemon(self.options.pid_file)
|
||||||
self.daemon.daemonize()
|
self.daemon.daemonize()
|
||||||
|
except SystemExit:
|
||||||
|
raise
|
||||||
except:
|
except:
|
||||||
self.log.error(traceback.format_exc())
|
self.log.critical(traceback.format_exc())
|
||||||
|
|
||||||
def runAsDaemon(self):
|
def runAsDaemon(self):
|
||||||
return self.options.daemon and self.options.pid_file
|
return self.options.daemon and self.options.pid_file
|
||||||
@@ -92,5 +104,7 @@ if __name__ == '__main__':
|
|||||||
l = Loader()
|
l = Loader()
|
||||||
l.daemonize()
|
l.daemonize()
|
||||||
l.run()
|
l.run()
|
||||||
except:
|
except SystemExit:
|
||||||
pass
|
pass
|
||||||
|
except:
|
||||||
|
l.log.critical(traceback.format_exc())
|
||||||
Reference in new issue
Block a user