1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

オープンソースのpipパッケージにloggerを入れて動作解析する

Last updated at Posted at 2020-11-03

概要

  • ソースが公開されている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 SignupViewdef 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.
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?