122
122
def make_stdout_observer(levels=(LogLevel.info, LogLevel.debug),
123
123
show_source=False, format="colour", trace=False,
126
126
Create an observer which prints logs to L{sys.stdout}.
128
131
@provider(ILogObserver)
129
132
def StandardOutObserver(event):
158
161
formatTime(event["log_time"]), logSystem, formatEvent(event))
159
162
elif format == "syslogd":
160
163
eventString = SYSLOGD_FORMAT.format(logSystem, formatEvent(event))
164
elif format == "none":
165
eventString = formatEvent(event)
162
169
print(eventString, file=_file)
167
174
def make_stderr_observer(levels=(LogLevel.warn, LogLevel.error,
168
175
LogLevel.critical),
169
176
show_source=False, format="colour",
172
179
Create an observer which prints logs to L{sys.stderr}.
174
184
@provider(ILogObserver)
175
185
def StandardErrorObserver(event):
204
214
formatTime(event["log_time"]), logSystem, eventText)
205
215
elif format == "syslogd":
206
216
eventString = SYSLOGD_FORMAT.format(logSystem, eventText)
217
elif format == "none":
218
eventString = formatEvent(event)
208
222
print(eventString, file=_file)
261
275
return _make_json
264
def make_legacy_daily_logfile_observer(path):
266
Make a L{DefaultSystemFileLogObserver}.
268
from crossbar.twisted.processutil import DefaultSystemFileLogObserver
269
from twisted.logger import LegacyLogObserverWrapper
270
from twisted.python.logfile import DailyLogFile
272
logfd = DailyLogFile.fromFullPath(os.path.join(path,
274
flo = LegacyLogObserverWrapper(
275
DefaultSystemFileLogObserver(logfd,
276
system="{:<10} {:>6}".format(
277
"Controller", os.getpid())).emit)
278
def make_logfile_observer(path, show_source=False):
280
Make an observer that writes out to C{path}.
282
from twisted.logger import FileLogObserver
288
if event.get("log_system", u"-") == u"-":
289
logSystem = u"{:<10} {:>6}".format("Controller", os.getpid())
291
logSystem = event["log_system"]
293
if show_source and event.get("log_namespace") is not None:
294
logSystem += " " + event.get("cb_namespace", event.get("log_namespace", ''))
296
if event.get("log_format", None) is not None:
297
eventText = formatEvent(event)
301
if "log_failure" in event:
302
# This is a traceback. Print it.
303
eventText = eventText + event["log_failure"].getTraceback()
305
eventString = NOCOLOUR_FORMAT.format(
306
formatTime(event["log_time"]), logSystem, eventText) + os.linesep
310
return FileLogObserver(f, _render)
282
313
class CrossbarLogger(object):
346
377
self._setlog_level = level
349
def make_logger(log_level=None, logger=Logger, observer=log_publisher):
380
def make_logger(log_level=None, logger=Logger, observer=None):
351
382
Make a new logger (of the type set by the kwarg logger) that publishes to
352
383
the observer set in the observer kwarg. If no explicit log_level is given,
353
384
it uses the current global log level.
387
observer = log_publisher
355
389
# Get the caller's frame
356
390
cf = currentframe(1)