概要
- ソースが公開されているpipパッケージの動作を調べるため、logger入りのパッケージを作って、ローカルからインストールします。
今回の対象
- django-allauth 0.44.0
準備
-
現在インストールされているバージョンを確認
pip list | grep django-allauth
-
ソースコードをGitHubからclone
mkdir django-allauth-with-log && cd django-allauth-with-log
git clone https://github.com/pennersr/django-allauth.git
cd django-allauth
ローカルからpipでインストールする手順の確認
バージョン番号の変更
vi allauth/__init__.py
#VERSION = (0, 44, 0, "dev", 0)
VERSION = (0, 44, 0, "dev", 99)
インストール済みパッケージのアンインストール
pip uninstall django-allauth
ローカルからインストール
- setup.py のあるディレクトリの1つ上のディレクトリに移動
cd ..
- pipでディレクトリ指定でインストール
pip install ./django-allauth/
インストールされたバージョンの確認
-
pip list | grep django-allauth
- 上記で書き換えたバージョン番号
django-allauth 0.44.0.dev99
と出れば成功です
- 上記で書き換えたバージョン番号
解析用に手を加える
loggerの設定を追加
loggerの設定ファイルを追加し、allauth/app_settings.py
から読み込む
vi allauth/logging_settings.py
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'django.server': {
'()': 'django.utils.log.ServerFormatter',
'format': '[%(server_time)s] %(message)s a',
},
'develop': {
'format': '%(asctime)s [%(levelname)s] %(message)s'
},
},
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'develop',
},
'django.server': {
'level': 'INFO',
'class': 'logging.StreamHandler',
'formatter': 'django.server',
},
},
'loggers': {
'': {
'handlers': ['console'],
'level': 'DEBUG',
'propagate': False,
},
'django': {
'handlers': ['console'],
'level': 'INFO',
},
'django.server': {
'handlers': ['django.server'],
'level': 'INFO',
'propagate': False,
},
}
}
vi allauth/app_settings.py
from .logging_settings import * # 追加
任意の場所にログ出力を追加
-
例えば、
allauth/account/views.py
に以下を追加 -
loggerの設定
import sys
import logging
logger = logging.getLogger(__name__)
- 任意の場所に以下を追加(例:
class SignupView
のdef dispatch
)
logger.info(f'class={self.__class__.__name__}, function={sys._getframe().f_code.co_name}, Line={sys._getframe().f_lineno} called.')
- クラス名は継承先の名前?が表示されるので注意が必要
ローカルからpipで再インストール
pip uninstall -y django-allauth
-
pip install ./django-allauth/
-
Successfully installed django-allauth-0.44.99.dev0
と出れば成功です
-
動作確認
- サーバを起動して
http://127.0.0.1:8000/member/signup/
のようなURLにアクセスして、以下のようにコンソールに表示されればOKです。
2020-11-03 01:23:45,678 [INFO] class=SignupView, function=dispatch, Line=238 called.