次のように私は(:https://docs.python.org/2/library/socketserver.html#socketserver-tcpserver-exampleから適応):私のTCPハンドラを書いたPythonの:伐採やTCPハンドラ
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import SocketServer
from MyModule import myFunction
class MyHandler(SocketServer.StreamRequestHandler):
def handle(self):
self.data = self.rfile.readline().strip()
result = myFunction(self.data)
self.wfile.write(result)
if __name__ == "__main__":
HOST, PORT = myhost, myport
server = SocketServer.TCPServer((HOST, PORT), MyHandler)
server.serve_forever()
私がロガーを追加しようとしている完璧と動作するようになりました:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import SocketServer
import logging
from logging.handlers import TimedRotatingFileHandler
from MyModule import myFunction
class MyHandler(SocketServer.StreamRequestHandler):
def __init__(self):
self.logger = logging.getLogger()
self.logger.setLevel(logging.DEBUG)
self.formatter = logging.Formatter('%(asctime)s :: %(levelname)s :: %(message)s')
self.file_handler = TimedRotatingFileHandler('my_log_file.log', when='D', interval=1, utc=True)
self.file_handler.setLevel(logging.DEBUG)
self.file_handler.setFormatter(self.formatter)
self.logger.addHandler(self.file_handler)
def handle(self):
self.data = self.rfile.readline().strip()
result = myFunction(self.data)
self.wfile.write(result)
self.logger.info(result)
if __name__ == "__main__":
HOST, PORT = myhost, myport
server = SocketServer.TCPServer((HOST, PORT), MyHandler)
server.serve_forever()
TypeError: __init__() takes exactly 1 argument (4 given)
:私はそれを実行すると
は、私は次のエラーを取得します私は与えられた4つの議論が何であるか分かりません。 それ以外のコードに問題はありますか?
EDIT:フルトレースバック:
Exception happened during processing of request from ('MyIP', 54028)
Traceback (most recent call last):
File "/usr/lib/python2.7/SocketServer.py", line 290, in _handle_request_noblock
self.process_request(request, client_address)
File "/usr/lib/python2.7/SocketServer.py", line 318, in process_request
self.finish_request(request, client_address)
File "/usr/lib/python2.7/SocketServer.py", line 331, in finish_request
self.RequestHandlerClass(request, client_address, self)
TypeError: __init__() takes exactly 1 argument (4 given)
完全バックトレースを提供してください。また、あなたは "自己"を逃した。 before logger.info(result) – MateuszL
@MateuszL私は完全バックトレースと "self"を追加しました。 – EliseB