~crossbar/crossbar/trunk

« back to all changes in this revision

Viewing changes to crossbar/twisted/processutil.py

  • Committer: Tobias Oberstein
  • Date: 2015-08-08 17:33:16 UTC
  • mfrom: (768.1.43)
  • Revision ID: git-v1:d3b417ac7448176393afb2435b1d90669b6e629d
Merge pull request #380 from hawkowl/clitests

Test the CLI + make sure file logging actually works (especially on Py3) + make the CLI logger start on all functions

Show diffs side-by-side

added added

removed removed

Lines of Context:
30
30
 
31
31
from __future__ import absolute_import
32
32
 
33
 
import os
34
 
 
35
 
from twisted.python import util
36
 
from twisted.python.log import FileLogObserver, textFromEventDict
37
 
 
38
33
from twisted.internet.endpoints import _WrapIProtocol, ProcessEndpoint
39
34
from twisted.internet.address import _ProcessAddress
40
35
from twisted.internet import defer
41
36
 
42
 
__all__ = ('WorkerProcessEndpoint', 'BareFormatFileLogObserver', 'DefaultSystemFileLogObserver')
 
37
__all__ = ('WorkerProcessEndpoint',)
43
38
 
44
39
 
45
40
class _WorkerWrapIProtocol(_WrapIProtocol):
89
84
            return defer.fail()
90
85
        else:
91
86
            return defer.succeed(proto)
92
 
 
93
 
 
94
 
class BareFormatFileLogObserver(FileLogObserver):
95
 
 
96
 
    """
97
 
    Log observer without any additional formatting (such as timestamps).
98
 
    """
99
 
 
100
 
    def emit(self, eventDict):
101
 
        text = textFromEventDict(eventDict)
102
 
        if text:
103
 
            util.untilConcludes(self.write, text + "\n")
104
 
            util.untilConcludes(self.flush)
105
 
 
106
 
 
107
 
class DefaultSystemFileLogObserver(FileLogObserver):
108
 
 
109
 
    """
110
 
    Log observer with default settable system.
111
 
    """
112
 
 
113
 
    def __init__(self, f, system=None, override=True):
114
 
        FileLogObserver.__init__(self, f)
115
 
        if system:
116
 
            self._system = system
117
 
        else:
118
 
            self._system = "Process {}".format(os.getpid())
119
 
        self._override = override
120
 
 
121
 
    def emit(self, eventDict):
122
 
        if 'system' in eventDict and 'override_system' in eventDict and eventDict['override_system']:
123
 
            pass
124
 
        else:
125
 
            if self._override or ('system' not in eventDict) or eventDict['system'] == "-":
126
 
                eventDict['system'] = self._system
127
 
        FileLogObserver.emit(self, eventDict)