2009-06-08 59 views
2

我想通過定義一個可用於模塊吞吐量的變量來將調試輸出與生產調試輸出分開。它不能在環境中定義。任何關於全局模塊中的類重用的建議? 此外還有一種方法來配置此變量標誌,告訴appengine不使用此代碼。python中的調試變量

回答

12

查看Google App Engine完全支持的logging module。您可以指定日誌記錄級別,例如調試,警告,錯誤等。它們將顯示在dev服務器控制檯中,並且也將存儲在請求日誌中。

如果執行運行開發服務器僅在特定的代碼之後的時候,你可以這樣做:

if os.environ['SERVER_SOFTWARE'].startswith('Development'): 
    print 'Hello world!' 

的SERVER_SOFTWARE變量總是由谷歌App Engine的設置。

至於模塊特定變量;模塊是對象,可以具有任何其他對象的值:

my_module.debug = True 
+0

對於日誌記錄模塊來說,這實際上是@ dhaval實際問題的最佳答案,因爲他解釋了它。 – 2009-06-08 22:45:14

+0

thx Blixit,我沒有意識到server_software變量 – dhaval 2009-06-09 03:57:18

1

所有模塊級變量對模塊中的所有類都是全局的。

這是我的文件:mymodule.py

import this 
import that 

DEBUG = True 

class Foo(object): 
    def __init__(self): 
     if DEBUG: print self.__class__, "__init__" 
     # etc. 

class Bar(object): 
    def do_work(self): 
     if DEBUG: print self.__class__, "do_work" 
     # etc. 

單,模塊級DEBUG變量將通過這兩個類的所有實例被發現。其他模塊(例如,this.pythat.py)可以有自己的DEBUG變量。這些將是this.DEBUGthat.DEBUG,並且不相關。