Most of this is explained in depth in Section 6.1.4 & 6.1.5 of the administration guide in Qube (all except frame log parsing). The admin guide is available under the help menu in Qube or online at
http://pipelinefx.com/docs/The log location would only be known to the workers if they were running mounted logs. "Mounted" logs are written directly by the workers, as opposed to "remote" mode where the logs are transmitted to the supervisor for it to handle. If the logs are remote (the default), then the workers likely don't have access to the logs, therefore, there is no path to them.
That said, to check the logmode on a worker via command line:
$ qbadmin worker --config BKMac.local | grep worker_logmode
60: worker_logmode=remote
...via python:
In [36]: qb.workerconfig('BKMac.local').get('worker_logmode')
Out[36]: 'remote'
both of which show that the logmode is remote. This means that the worker cannot see the logs.
Let's now move to a mounted logs example....
$ qbadmin worker --config BKMac.local | grep worker_logmode
60: worker_logmode=mounted
$ qbadmin worker --config BKMac.local | grep worker_logpath
61: worker_logpath=/Volumes/server/qubelogs
...via python:
In [37]: qb.workerconfig('BKMac.local').get('worker_logmode')
Out[37]: 'mounted'
In [38]: qb.workerconfig('BKMac.local').get('worker_logpath')
Out[38]: '/Volumes/server/qubelogs'
Now we know the root of the qube logs to /Volumes/server/qubelogs. Job logs, then, live in /Volumes/server/qubelogs/job/. The exact location of the logs can be figure by info in section 6.1.4 in the admin guide. Note that the logs are based on the subjob/instance, not on the frame. Subjob 3's logs for job 1234 would, in this example, live in /Volumes/server/qubelogs/job/1000/1234/1234_3.out & .err. To get the frame logs, you would need to parse the file. Both the Wrangler and Artist View GUIs do this by looking for the line that contains "got work <job_id>:<frame_name>". Note, it is important to look for the frame's name rather than its id.