forked from platypush/platypush
parent
5fd40af285
commit
c1d66abb89
1 changed files with 41 additions and 0 deletions
|
@ -40,6 +40,8 @@ class Application:
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
config_file: Optional[str] = None,
|
config_file: Optional[str] = None,
|
||||||
|
workdir: Optional[str] = None,
|
||||||
|
logsdir: Optional[str] = None,
|
||||||
pidfile: Optional[str] = None,
|
pidfile: Optional[str] = None,
|
||||||
requests_to_process: Optional[int] = None,
|
requests_to_process: Optional[int] = None,
|
||||||
no_capture_stdout: bool = False,
|
no_capture_stdout: bool = False,
|
||||||
|
@ -52,6 +54,12 @@ class Application:
|
||||||
):
|
):
|
||||||
"""
|
"""
|
||||||
:param config_file: Configuration file override (default: None).
|
:param config_file: Configuration file override (default: None).
|
||||||
|
:param workdir: Overrides the ``workdir`` setting in the configuration
|
||||||
|
file (default: None).
|
||||||
|
:param logsdir: Set logging directory. If not specified, the
|
||||||
|
``filename`` setting under the ``logging`` section of the
|
||||||
|
configuration file is used. If not set, logging will be sent to
|
||||||
|
stdout and stderr.
|
||||||
:param pidfile: File where platypush will store its PID upon launch,
|
:param pidfile: File where platypush will store its PID upon launch,
|
||||||
useful if you're planning to integrate the application within a
|
useful if you're planning to integrate the application within a
|
||||||
service or a launcher script (default: None).
|
service or a launcher script (default: None).
|
||||||
|
@ -85,8 +93,14 @@ class Application:
|
||||||
self.redis_queue = redis_queue or self._default_redis_queue
|
self.redis_queue = redis_queue or self._default_redis_queue
|
||||||
self.config_file = config_file
|
self.config_file = config_file
|
||||||
self._verbose = verbose
|
self._verbose = verbose
|
||||||
|
self._logsdir = (
|
||||||
|
os.path.abspath(os.path.expanduser(logsdir)) if logsdir else None
|
||||||
|
)
|
||||||
Config.init(self.config_file)
|
Config.init(self.config_file)
|
||||||
|
|
||||||
|
if workdir:
|
||||||
|
Config.set('workdir', os.path.abspath(os.path.expanduser(workdir)))
|
||||||
|
|
||||||
self.no_capture_stdout = no_capture_stdout
|
self.no_capture_stdout = no_capture_stdout
|
||||||
self.no_capture_stderr = no_capture_stderr
|
self.no_capture_stderr = no_capture_stderr
|
||||||
self.event_processor = EventProcessor()
|
self.event_processor = EventProcessor()
|
||||||
|
@ -123,6 +137,11 @@ class Application:
|
||||||
logging_conf = Config.get('logging') or {}
|
logging_conf = Config.get('logging') or {}
|
||||||
if self._verbose:
|
if self._verbose:
|
||||||
logging_conf['level'] = logging.DEBUG
|
logging_conf['level'] = logging.DEBUG
|
||||||
|
if self._logsdir:
|
||||||
|
logging_conf['filename'] = os.path.join(self._logsdir, 'platypush.log')
|
||||||
|
logging_conf.pop('stream', None)
|
||||||
|
|
||||||
|
Config.set('logging', logging_conf)
|
||||||
logging.basicConfig(**logging_conf)
|
logging.basicConfig(**logging_conf)
|
||||||
|
|
||||||
def _start_redis(self):
|
def _start_redis(self):
|
||||||
|
@ -174,6 +193,26 @@ class Application:
|
||||||
help='Custom location for the configuration file',
|
help='Custom location for the configuration file',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
parser.add_argument(
|
||||||
|
'--workdir',
|
||||||
|
'-w',
|
||||||
|
dest='workdir',
|
||||||
|
required=False,
|
||||||
|
default=None,
|
||||||
|
help='Custom working directory to be used for the application',
|
||||||
|
)
|
||||||
|
|
||||||
|
parser.add_argument(
|
||||||
|
'--logsdir',
|
||||||
|
'-l',
|
||||||
|
dest='logsdir',
|
||||||
|
required=False,
|
||||||
|
default=None,
|
||||||
|
help='Store logs in the specified directory. By default, the '
|
||||||
|
'`[logging.]filename` configuration option will be used. If not '
|
||||||
|
'set, logging will be sent to stdout and stderr.',
|
||||||
|
)
|
||||||
|
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--version',
|
'--version',
|
||||||
dest='version',
|
dest='version',
|
||||||
|
@ -266,6 +305,8 @@ class Application:
|
||||||
|
|
||||||
return cls(
|
return cls(
|
||||||
config_file=opts.config,
|
config_file=opts.config,
|
||||||
|
workdir=opts.workdir,
|
||||||
|
logsdir=opts.logsdir,
|
||||||
pidfile=opts.pidfile,
|
pidfile=opts.pidfile,
|
||||||
no_capture_stdout=opts.no_capture_stdout,
|
no_capture_stdout=opts.no_capture_stdout,
|
||||||
no_capture_stderr=opts.no_capture_stderr,
|
no_capture_stderr=opts.no_capture_stderr,
|
||||||
|
|
Loading…
Reference in a new issue