मेरे पास लॉगिंग का उपयोग कर टीसीपी पर एक syslog सर्वर पर लॉग भेजने की प्रक्रिया है। SyslogHandler। दुर्भाग्यवश, यदि किसी कारण से syslog सर्वर पुनरारंभ किया गया है, तो प्रक्रिया लॉग भेजने को रोकती है और कनेक्शन को पुन: स्थापित करने में असमर्थ है।टीसीपी पर पाइथन SysLogHandler: कनेक्शन हानि को संभालने
मैं सोच रहा था कि क्या कोई इस व्यवहार को दूर करने और लॉगिंग को मजबूर करने के तरीके के बारे में जानता है। कनेक्शन लॉग को फिर से स्थापित करने के लिए।
import logging
import logging.handlers
import logging.config
logging.config.fileConfig('logging.cfg')
logging.debug("debug log message")
logging.cfg:
[loggers]
keys=root,remote
[handlers]
keys=local,remote
[logger_remote]
qualname=remote
level=INFO
handlers=remote
[logger_root]
qualname=root
level=DEBUG
handlers=local
[handler_local]
class=handlers.StreamHandler
level=DEBUG
formatter=local
args=(sys.stdout,)
[handler_remote]
class=handlers.SysLogHandler
level=DEBUG
formatter=remote
args=(('localhost', 514), handlers.SysLogHandler.LOG_USER, 1)
[formatters]
keys=local,remote
[formatter_local]
format=%(module)s %(levelname)s %(message)s
[formatter_remote]
format=%(asctime)s %(message)s
त्रुटि मैं syslog सर्वर पुनरारंभ के बाद मिलती रहती है:
हैंडलर का उपयोग करनाकोड की तरह कुछ होगा
Traceback (most recent call last):
File "/usr/local/lib/python2.7/logging/handlers.py", line 866, in emit
self.socket.sendall(msg)
File "/usr/local/lib/python2.7/socket.py", line 228, in meth
return getattr(self._sock,name)(*args)
error: [Errno 32] Broken pipe
मैं किसी भी अंतर्दृष्टि की सराहना करता हूं। धन्यवाद!
'('स्थानीय होस्ट', 514)' मतलब है "नमस्ते, मेरा जड़ दोस्त आप कौन आपको करने के लिए कहा 514 पोर्ट का उपयोग कर सकते हैं कि कर रहे हैं? (केवल लक्ष्य के रूप में उपयोग कर सकते हैं, नहीं स्रोत)" – dsgdfg