Skip to content

Redirect of stdout to stderr #535

Closed
Closed
@lunactic

Description

@lunactic

Expected Behavior

Tell us what should happen

I am using nodejs / typescript to run the cwltool with code like this:

conn.exec(command, (err: Error, stream: ssh.ClientChannel) => {
  (err) {
    reject(err);
   }
  stream.on('close', (code, signal) => {
    Logger.log("debug", "Stream :: close :: code: " + code + ", signal: " + signal, "DockerManagement::runDockerImageSSH");
  }).on('data', (data) => {
    Logger.log("debug", "STDOUT: " + data, "DockerManagement::runDockerImageSSH");
  }).stderr.on('data', (data) => {
    Logger.log("error", "STDERR: " + data, "DockerManagement::runDockerImageSSH");
  });
});

I would expect that logging information about running the cwltool would be logged for me stating with "STDOUT", as it would be logged to the standard output.

Actual Behavior

When I run the cwltool like this:

cwltool --outdir /data_test/results/fuzzybighearteddotterel/data_0/ --debug --tmp-outdir-prefix /data_test/output/ --tmpdir-prefix /data_test/tmp/ --workdir /input /data_test/executables/evaluation/icdar2017hisdoclayoutcomplayoutevaluationtest/1/8d7ba5fdcdedc7908370924b366d266fc4c996e2.cwl /data_test/results/fuzzybighearteddotterel/data_0/data_0.yaml

My logging output looks like this:

[2017-08-28 11:37:05.514] [ERROR] DIVAServices - STDERR: Resolved '/data_test/executables/evaluation/icdar2017hisdoclayoutcomplayoutevaluationtest/1/8d7ba5fdcdedc7908370924b366d266fc4c996e2.cwl' to 'file:///data_test/executables/evaluation/icdar2017hisdoclayoutcomplayoutevaluationtest/1/8d7ba5fdcdedc7908370924b366d266fc4c996e2.cwl'
 [DockerManagement::runDockerImageSSH]
[2017-08-28 11:37:06.096] [ERROR] DIVAServices - STDERR: [job 8d7ba5fdcdedc7908370924b366d266fc4c996e2.cwl] initializing from file:///data_test/executables/evaluation/icdar2017hisdoclayoutcomplayoutevaluationtest/1/8d7ba5fdcdedc7908370924b366d266fc4c996e2.cwl
 [DockerManagement::runDockerImageSSH]

So all logging information is sent to the stderr output. This seems to be the default behaviour as it is set here:

stdout = sys.stderr

I wonder if this behaviour is intentional, and what would be the proper way to handle this differently.

Your Environment

  • cwltool version: 1.0.20170824143724

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions