Ich verwende SysLogHandler in meiner Protokollierungskonfigurationsdatei."Falscher Protokolltyp für Socket" bei Verwendung von socket.SOCK_STREAM in Protokollierungskonfiguration
Als rsyslog
auf meinem Linux-Box läuft, möchte ich socket.SOCK_STREAM
als socktype
Stichwort Argument der SysLogHandler
Instanz verwenden. Die documentation sagt in der Tat:
To open a TCP socket (for use with the newer syslog daemons such as rsyslog), specify a value of socket.SOCK_STREAM.
Aber wenn ich den Handler hinzufügen, wie folgt aus:
log.addHandler(logging.handlers.SysLogHandler(address='/dev/log',
facility='mathmaker',
socktype=socket.SOCK_STREAM))
ich diesen Fehler:
File "/home/zezo/dev/myapp/myapp", line 52, in <module>
socktype=socket.SOCK_STREAM))
File "/usr/lib/python3.4/logging/handlers.py", line 803, in __init__
self._connect_unixsocket(address)
File "/usr/lib/python3.4/logging/handlers.py", line 820, in _connect_unixsocket
self.socket.connect(address)
OSError: [Errno 91] Protocol wrong type for socket
Obwohl es wie rsyslog scheint hört/dev/log: lsof | grep rsyslog
zeigt:
rsyslogd 8090 syslog 0u unix 0xffff8800b413ce00 0t0 2739240 /dev/log