2011年6月13日月曜日

Django デバッグ環境を整える

今回は3つデバッグ環境について触れてみた。
 ・Logging
 ・django-debug-toolbar(IE9だと表示崩れる)
 ・pylint


○Logging
Django v1.3になって、setting.pyにロギングするコードが追加されたようだ。

使い方は簡単で、
https://docs.djangoproject.com/en/1.3/topics/logging/
ここを見ながら設定してみると、

setting.py
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'mail_admins': {
            'level': 'ERROR',
            'class': 'django.utils.log.AdminEmailHandler'
        }
    },
    'loggers': {
        'django.request': {
            'handlers': ['mail_admins'],
            'level': 'ERROR',
            'propagate': True,
        },
  'app': {
   'handlers': ['console'],
   'level': 'DEBUG',
   'propagate': True,
  },
    }
}

views.py
import logging
...

logger = logging.getLogger('app')
...
このような感じに設定しておく。

○django-debug-toolbar
さらにデバッグしやすくしようと思って調べてみたら、
「django-debug-toolbar」というものを発見。
ここからいつもどおりの手順で導入していく。

1.インストール
sudo easy_install-2.5 django-debug-toolbar

2.設定
.\python\Lib\site-packages\django_debug_toolbar-0.8.5-py2.6.egg\example
サンプルを見ながら設定していく。

settings.py
INSTALLED_APPS = (
    ...
    'debug_toolbar',
)
MIDDLEWARE_CLASSES = (
    ...
    'debug_toolbar.middleware.DebugToolbarMiddleware',
)

DEBUG_TOOLBAR_PANELS = (
    'debug_toolbar.panels.version.VersionDebugPanel',
    'debug_toolbar.panels.timer.TimerDebugPanel',
    'debug_toolbar.panels.settings_vars.SettingsVarsDebugPanel',
    'debug_toolbar.panels.headers.HeaderDebugPanel',
    'debug_toolbar.panels.request_vars.RequestVarsDebugPanel',
    'debug_toolbar.panels.template.TemplateDebugPanel',
    'debug_toolbar.panels.sql.SQLDebugPanel',
    'debug_toolbar.panels.signals.SignalDebugPanel',
    'debug_toolbar.panels.logger.LoggingPanel',
)

def custom_show_toolbar(request):
    return True # Always show toolbar, for example purposes only.

DEBUG_TOOLBAR_CONFIG = {
    'INTERCEPT_REDIRECTS': False,
    'SHOW_TOOLBAR_CALLBACK': custom_show_toolbar,
    #'EXTRA_SIGNALS': ['myproject.signals.MySignal'],
    'HIDE_DJANGO_SQL': False,
}

3.確認
サーバ立ち上げて、管理画面を表示してみる。
右側に黒いメニューバーが表示されていれば成功。

(Firefoxはうまく表示されたが、IEだと表示バグがあった。。)

○pylint
コーディング中に構文エラーを発見したい人向け。
自分が使っているエディタはVIMを使っているので、
VIM環境で楽に使えるように設定まで行ってみた。

1.インストール
 easy_install pylint

2.VIM環境設定
 http://www.vim.org/scripts/script.php?script_id=891
 pylint.vimの最新版をダウンロードして、
 Vimフォルダのruntime/plugin/
 にコピーする。

参考ページ
http://www.hexacosa.net/blog/detail/54/
コメントを投稿

Androider