diff options
Diffstat (limited to 'service/pixelated/config')
-rw-r--r-- | service/pixelated/config/__init__.py | 5 | ||||
-rw-r--r-- | service/pixelated/config/app_factory.py | 4 | ||||
-rw-r--r-- | service/pixelated/config/debug.py | 40 | ||||
-rw-r--r-- | service/pixelated/config/logging_setup.py | 65 |
4 files changed, 69 insertions, 45 deletions
diff --git a/service/pixelated/config/__init__.py b/service/pixelated/config/__init__.py index f9c43153..2045354e 100644 --- a/service/pixelated/config/__init__.py +++ b/service/pixelated/config/__init__.py @@ -25,7 +25,7 @@ from pixelated.config.dispatcher import config_dispatcher from pixelated.config.events_server import init_events_server from pixelated.config.loading_page import loading from pixelated.config.register import register -from pixelated.config.debug import init_debugger +from pixelated.config.logging_setup import init_logging from pixelated.config.leap_cert import init_leap_cert from pixelated.config.soledad import init_soledad_and_user_key from twisted.internet import reactor @@ -36,13 +36,14 @@ import pixelated.support.ext_protobuf import pixelated.support.ext_sqlcipher import pixelated.support.ext_esmtp_sender_factory import pixelated.support.ext_fetch +import pixelated.support.ext_keymanager_fetch_key def initialize(): args = parse_args() app = App() - init_debugger(args) + init_logging(args) init_leap_cert(args) if args.register: diff --git a/service/pixelated/config/app_factory.py b/service/pixelated/config/app_factory.py index f63b49ed..f20b1229 100644 --- a/service/pixelated/config/app_factory.py +++ b/service/pixelated/config/app_factory.py @@ -33,7 +33,6 @@ from pixelated.adapter.listeners.mailbox_indexer_listener import MailboxIndexerL import pixelated.bitmask_libraries.session as LeapSession from pixelated.bitmask_libraries.leap_srp import LeapAuthException from requests.exceptions import ConnectionError -from pixelated.adapter.services.tag_service import TagService from leap.common.events import ( register, unregister, @@ -100,14 +99,13 @@ def init_app(app, leap_home, leap_session): soledad_querier = SoledadQuerier(soledad=leap_session.account._soledad) - tag_service = TagService() search_engine = SearchEngine(soledad_querier, agent_home=leap_home) pixelated_mail_sender = MailSender(leap_session.account_email(), lambda: leap_session.smtp.ensure_running()) pixelated_mailboxes = Mailboxes(leap_session.account, soledad_querier, search_engine) draft_service = DraftService(pixelated_mailboxes) - mail_service = MailService(pixelated_mailboxes, pixelated_mail_sender, tag_service, soledad_querier, search_engine) + mail_service = MailService(pixelated_mailboxes, pixelated_mail_sender, soledad_querier, search_engine) MailboxIndexerListener.SEARCH_ENGINE = search_engine InputMail.FROM_EMAIL_ADDRESS = leap_session.account_email() diff --git a/service/pixelated/config/debug.py b/service/pixelated/config/debug.py deleted file mode 100644 index d91d3a34..00000000 --- a/service/pixelated/config/debug.py +++ /dev/null @@ -1,40 +0,0 @@ -# -# Copyright (c) 2014 ThoughtWorks, Inc. -# -# Pixelated is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# Pixelated is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with Pixelated. If not, see <http://www.gnu.org/licenses/>. - -import logging -import sys -import os -from twisted.python import log - - -def init_debugger(args): - debug_enabled = args.debug or os.environ.get('DEBUG', False) - log.startLogging(sys.stdout) - - if debug_enabled: - logging.basicConfig(level=logging.DEBUG, - format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s', - datefmt='%m-%d %H:%M', - filename='/tmp/leap.log', - filemode='w') # define a Handler which writes INFO messages or higher to the sys.stderr - - console = logging.StreamHandler() - console.setLevel(logging.DEBUG) - formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s') - console.setFormatter(formatter) - logging.getLogger('').addHandler(console) - - return debug_enabled diff --git a/service/pixelated/config/logging_setup.py b/service/pixelated/config/logging_setup.py new file mode 100644 index 00000000..a15413a0 --- /dev/null +++ b/service/pixelated/config/logging_setup.py @@ -0,0 +1,65 @@ +# +# Copyright (c) 2014 ThoughtWorks, Inc. +# +# Pixelated is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Pixelated is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with Pixelated. If not, see <http://www.gnu.org/licenses/>. + +import logging +import socket +import sys +import os +from twisted.python import log +from twisted.python import util + + +def init_logging(args): + debug_enabled = args.debug or os.environ.get('DEBUG', False) + + logging.basicConfig(level=logging.DEBUG if debug_enabled else logging.WARNING, + format='[%(asctime)s] ' + socket.gethostname() + ' %(name)-12s %(levelname)-8s %(message)s', + datefmt='%m-%d %H:%M:%S', + filemode='a') + + if debug_enabled: + init_debugger() + + log.startLogging(sys.stdout) + + +def init_debugger(): + formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s') + console = logging.StreamHandler() + console.setLevel(logging.DEBUG) + console.setFormatter(formatter) + logging.getLogger('').addHandler(console) + + +class PixelatedLogObserver(log.FileLogObserver): + + """ FileLogObserver with a customized format """ + def emit(self, event): + text = log.textFromEventDict(event) + + if text is None: + return + + self.timeFormat = '[%Y-%m-%d %H:%M:%S]' + time_str = self.formatTime(event['time']) + + fmt_dict = {'text': text.replace('\n', '\n\t')} + msg_str = log._safeFormat('%(text)s\n', fmt_dict) + + logging.debug(str(event)) + + util.untilConcludes(self.write, time_str + ' ' + socket.gethostname() + ' ' + msg_str) + util.untilConcludes(self.flush) |