リクエストが来たらすぐにログファイルを更新したい。TRUE に初期化されたクラス変数 event_logging_enabled があります。POST() 関数で、event_logging_enabled の値を確認します。
実行時に、後続のリクエストのためにこのフラグの値を FALSE に変更します。しかし、それはTRUEのままです。
デバッグ中に、リクエストを受信すると、各リクエストを処理するために新しいオブジェクトが作成されるため、初期化された値 ieTRUE が選択されることがわかりました。
これは、同じクラスの getlogEnabled() などの他の関数には当てはまりません。回避策を提案してください。
import web
import threading
class webServer(threading.Thread):
port = "1234"
event_logging_enabled = "True"
def getlogEnabled(self):
print "Stub getlogEnabled(): ",self.event_logging_enabled
def __init__(self):
threading.Thread.__init__(self)
""" Logging """
print "Init------------------------",self.event_logging_enabled
self.event_logging_filename = "ueLogs.log"
def run(self):
urls = (
'/','webServer',
)
app = web.application(urls,globals())
sys.argv.append(webServer.port)
app.run()
def POST(self):
print "in POST"
print "Stub POST(): Logging Enabled : ",self.event_logging_enabled