@@ -465,7 +465,8 @@ def main(argsl=None, # type: List[str]
465
465
_logger .addHandler (stderr_handler )
466
466
# pre-declared for finally block
467
467
workflowobj = None
468
- prov_handler = None # type: Optional[logger.FileHandler]
468
+ prov_log_handler = None # type: Optional[logging.FileHandler]
469
+ prov_log_handler_file = None # type: Optional[IO[Any]]
469
470
try :
470
471
if args is None :
471
472
if argsl is None :
@@ -494,25 +495,16 @@ def main(argsl=None, # type: List[str]
494
495
rdflib_logger = logging .getLogger ("rdflib.term" )
495
496
rdflib_logger .addHandler (stderr_handler )
496
497
rdflib_logger .setLevel (logging .ERROR )
497
- if args .provenance :
498
- try :
499
- os .makedirs (args .provenance )
500
- except os .error :
501
- pass
502
- prov_handler = logging .FileHandler (
503
- os .path .join (args .provenance , "log" ))
504
- _logger .addHandler (prov_handler )
505
498
if args .quiet :
506
499
_logger .setLevel (logging .WARN )
507
500
if runtimeContext .debug :
508
501
_logger .setLevel (logging .DEBUG )
509
502
rdflib_logger .setLevel (logging .DEBUG )
503
+ formatter = None # type: Optional[logging.Formatter]
510
504
if args .timestamps :
511
505
formatter = logging .Formatter ("[%(asctime)s] %(message)s" ,
512
506
"%Y-%m-%d %H:%M:%S" )
513
507
stderr_handler .setFormatter (formatter )
514
- if prov_handler :
515
- prov_handler .setFormatter (formatter )
516
508
517
509
if args .version :
518
510
print (versionfunc ())
@@ -554,6 +546,14 @@ def main(argsl=None, # type: List[str]
554
546
runtimeContext .research_obj = ResearchObject (
555
547
temp_prefix_ro = args .tmpdir_prefix , orcid = args .orcid ,
556
548
full_name = args .cwl_full_name )
549
+ assert runtimeContext .research_obj .folder
550
+ prov_log_handler_filename = os .path .join (
551
+ runtimeContext .research_obj .folder , "log" )
552
+ prov_log_handler = logging .FileHandler (
553
+ str (prov_log_handler_filename ))
554
+ if formatter :
555
+ prov_log_handler .setFormatter (formatter )
556
+ _logger .addHandler (prov_log_handler )
557
557
558
558
if loadingContext is None :
559
559
loadingContext = LoadingContext (vars (args ))
@@ -766,28 +766,30 @@ def loc_to_path(obj):
766
766
u"Workflow error%s:\n %s" , try_again_msg , strip_dup_lineno (Text (exc )),
767
767
exc_info = args .debug )
768
768
return 1
769
- except Exception as exc :
769
+ except Exception as exc : # pylint: disable=broad-except
770
770
_logger .error (
771
771
u"Unhandled error%s:\n %s" , try_again_msg , exc , exc_info = args .debug )
772
772
return 1
773
773
774
774
finally :
775
775
if args and runtimeContext and runtimeContext .research_obj \
776
- and args . rm_tmpdir and workflowobj :
776
+ and workflowobj :
777
777
#adding all related cwl files to RO
778
+ research_obj = runtimeContext .research_obj
778
779
prov_dependencies = printdeps (
779
780
workflowobj , document_loader , stdout , args .relative_deps , uri ,
780
- runtimeContext . research_obj )
781
+ research_obj )
781
782
prov_dep = prov_dependencies [1 ]
782
783
assert prov_dep
783
- runtimeContext .research_obj .generate_snapshot (prov_dep )
784
-
785
- runtimeContext .research_obj .close (args .provenance )
784
+ research_obj .generate_snapshot (prov_dep )
785
+ if prov_log_handler :
786
+ prov_log_handler .close ()
787
+ _logger .removeHandler (prov_log_handler )
788
+ with open (prov_log_handler_filename , "rb" ) as log :
789
+ research_obj .add_data_file (log )
790
+ research_obj .close (args .provenance )
786
791
787
792
_logger .removeHandler (stderr_handler )
788
- if prov_handler :
789
- prov_handler .close ()
790
- _logger .removeHandler (prov_handler )
791
793
_logger .addHandler (defaultStreamHandler )
792
794
793
795
0 commit comments