Index: recipes.py |
diff --git a/recipes.py b/recipes.py |
index c72c3e3ec67aaba5789544e91f7c1f90bf9a3b7b..c7eeb2209aaa7d92fffe1dfa5a71791a79959ad2 100755 |
--- a/recipes.py |
+++ b/recipes.py |
@@ -92,6 +92,7 @@ def run(package_deps, args, op_args): |
from recipe_engine import loader |
from recipe_engine import step_runner |
from recipe_engine import stream |
+ from recipe_engine import stream_logdog |
def get_properties_from_args(args): |
properties = dict(x.split('=', 1) for x in args) |
@@ -152,12 +153,35 @@ def run(package_deps, args, op_args): |
old_cwd = os.getcwd() |
os.chdir(workdir) |
- stream_engine = stream.ProductStreamEngine( |
- stream.StreamEngineInvariants(), |
- stream.AnnotatorStreamEngine( |
+ |
+ # Construct our stream engine. |
+ # |
+ # We begin with a ProductStreamEngine seeded with StreamEngineInvariants. As |
+ # we evaluate our configuration, we will append additional StreamEngine |
+ # instances to the ProductStreamEngine. |
+ stream_engine = stream.ProductStreamEngine(stream.StreamEngineInvariants()) |
+ |
+ def build_annotation_stream_engine(): |
+ return stream.AnnotatorStreamEngine( |
sys.stdout, |
emit_timestamps=(args.timestamps or |
- op_args.annotation_flags.emit_timestamp))) |
+ op_args.annotation_flags.emit_timestamp), |
+ ) |
+ |
+ if op_args.logdog.streamserver_uri: |
+ logging.debug('Using LogDog with parameters [%v]', op_args.logdog) |
+ stream_engine.append_stream_engine(stream_logdog.StreamEngine( |
+ streamserver_uri=op_args.logdog.streamserver_uri, |
+ name_base=(op_args.logdog.name_base or None), |
+ )) |
+ |
+ # If we're teeing, also fold in a standard annotation stream engine. |
+ if op_args.logdog.tee: |
+ stream_engine.append_stream_engine(build_annotation_stream_engine()) |
+ else: |
+ # Not using LogDog; use a standard annotation stream engine. |
+ stream_engine.append_stream_engine(build_annotation_stream_engine()) |
+ |
with stream_engine: |
# Emit initial properties if configured to do so. |
if op_args.annotation_flags.emit_initial_properties: |