переменная отладки в python - PullRequest
2 голосов
/ 08 июня 2009

Я хочу отделить выходные данные отладки от производственных, определив переменную, которая может использоваться через модуль. Это не может быть определено в окружающей среде. Какие-нибудь предложения для глобалов, повторно используемых через классы в модулях? Кроме того, есть способ настроить флаг этой переменной, чтобы сообщить appengine, что этот код не используется.

Ответы [ 2 ]

12 голосов
/ 08 июня 2009

Взгляните на модуль ведения журнала , который полностью поддерживается Google App Engine. Можно указать уровни ведения журнала, такие как отладка, предупреждение, ошибка и т. Д. Они будут отображаться в консоли сервера dev, а также будут сохраняться в журнале запросов.

Если вы выполняете определенный код только при запуске сервера dev, вы можете сделать это:

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

Переменная SERVER_SOFTWARE всегда устанавливается Google App Engine.

Что касается специфичных для модуля переменных; модули являются объектами и могут иметь значения, как и любой другой объект:

my_module.debug = True
1 голос
/ 09 июня 2009

Все переменные уровня модуля являются глобальными для всех классов в модуле.

Вот мой файл: 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.py и that.py) могут иметь свои собственные DEBUG переменные. Это были бы this.DEBUG или that.DEBUG, и они не связаны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...