Syslog handler is a service, not a file
You seem to be confused by trying to specify logfile for syslog.
Quoting Wikipedia:
Syslog is a standard for computer message logging. It permits separation of the software that generates messages from the system that stores them and the software that reports and analyzes them.
As syslog is a service, it decides about what to do with log records on it's own. That is why, you can only say address (like localhost on default port) of the syslog service but have no chance to control more from your (separated) application.
On SysLog side, there is configuration, controlling where should what log entry end up, but this is out of control of your log handler.
If you omit address, it would by default talk to localhost and default syslog port. In such a case it is very likely, you find your log records in /var/log/syslog file.
Forwarding log records from another log to syslog
If you have another log in some file and want to send it to syslog, you must:
- parse the log file and find log records
- send log records to syslog
However, this might create issues with timestamps of LogRecords as usually the created time is derived automatically at the moment log record is created. But it could be possibly resolved.
Conclusions
Do not expect your logger in Python to decide the file where syslog writhes log records. This must be configured at syslog level, not in your app.
If you have to forward logs from another source, most optimal is to manage that it goes directly there. If you cannot do that, you have to parse the log file and resend log records to syslog handler. Here you will have to resolve details about timestamps in log records.
/var/run/syslogseems wrong. have you tried/dev/log?python -c 'import syslog; help(syslog)'...