code: def subscribe(self, job, id=None):
          
          return self.raw('core.subscribe', {'id': job}, stream=True, id=id)
docs: Subscribes to job logs. It return the subscribe Response object which you will need to call .stream() on
          to read the output stream of this job.
  
          Calling subscribe multiple times will cause different subscriptions on the same job, each subscription will
          have a copy of this job streams.
  
          Note: killing the subscription job will not affect this job, it will also not cause unsubscripe from this stream
          the subscriptions will die automatically once this job exits.
  
          example:
              job = client.system('long running job')
              subscription = client.subscribe(job.id)
  
              subscription.stream() # this will print directly on stdout/stderr check stream docs for more details.
  
          hint: u can give an optional id to the subscriber (otherwise a guid will be generate for you). You probably want
          to use this in case your job watcher died, so u can hook on the stream of the current subscriber instead of creating a new one
  
          example:
              job = client.system('long running job')
              subscription = client.subscribe(job.id, 'my-job-subscriber')
  
              subscription.stream()
  
              # process dies for any reason
              # on next start u can simply do
  
              subscription = client.response_for('my-job-subscriber')
              subscription.stream()
  
  
          :param job: the job ID to subscribe to
          :param id: the subscriber ID (optional)
          :return: the subscribe Job object