Djangoのログログ

取り扱い出典:  https://www.jianshu.com/p/b6cdb470bee1

序文

プログラム開発におけるログが不可欠であり、我々は、任意の場所にログを通じて何も異常がエラーを分析することができます。本番環境での使用がたくさんあります。Java開発者は、通常、サードパーティのコンポーネントのlog4jの、logbackなどを使用しています。Djangoは、ログをどのように扱うかありますか?DjangoはPythonのloggingモジュールの提供を使用することではなく、ジャンゴでロギングを使用することなく、特定の構成規則がで設定で設定する必要があります。

ロギングモジュール

ロギングモジュールは、アプリケーション・ログ・イベント、エラー、警告、およびデバッグ情報のための柔軟な手段を提供します。これらの情報は、など、オペレーティングシステムのログに送信されたファイルを、書き込み、収集スクリーニングすることができ、それも、ネットワーク経由でリモートコンピュータに送信することができます。

私は私の最初のロギング設定を囲みます

LOGGING = {
    'version': 1, 'disable_existing_loggers': True, 'formatters': { 'standard': { 'format': '%(asctime)s [%(name)s:%(lineno)d] [%(module)s:%(funcName)s] [%(levelname)s] %(message)s'} # 日志格式 }, 'filters': { }, 'handlers': { 'mail_admins': { 'level': 'ERROR', 'class': 'django.utils.log.AdminEmailHandler', 'include_html': True, }, 'default': { 'level': 'DEBUG', 'class': 'logging.handlers.RotatingFileHandler', 'filename': '{}/Log/QWebFX_{}.log'.format(BASE_DIR, datetime.datetime.now().date()), # 日志输出文件 'maxBytes': 1024 * 1024 * 5, # 文件大小 'backupCount': 5, # 备份份数 'formatter': 'standard', # 使用哪种formatters日志格式 }, 'error': { 'level': 'ERROR', 'class': 'logging.handlers.RotatingFileHandler', 'filename': '{}/Log/Error/QWebFX_Error_{}.log'.format(BASE_DIR, datetime.datetime.now().date()), 'maxBytes': 1024 * 1024 * 5, 'backupCount': 5, 'formatter': 'standard', }, 'console': { 'level': 'DEBUG', 'class': 'logging.StreamHandler', 'formatter': 'standard' }, 'request_handler': { 'level': 'DEBUG', 'class': 'logging.handlers.RotatingFileHandler', 'filename': '{}/Log/Request/QWebFX_Request_{}.log'.format(BASE_DIR, datetime.datetime.now().date()), 'maxBytes': 1024 * 1024 * 5, 'backupCount': 5, 'formatter': 'standard', }, 'scripts_handler': { 'level': 'DEBUG', 'class': 'logging.handlers.RotatingFileHandler', 'filename': '{}/Log/Script/QWebFX_Script_{}.log'.format(BASE_DIR, datetime.datetime.now().date()), 'maxBytes': 1024 * 1024 * 5, 'backupCount': 5, 'formatter': 'standard', } }, 'loggers': { 'django': { 'handlers': ['default'], 'level': 'DEBUG', 'propagate': False }, 'django.request': { 'handlers': ['request_handler'], 'level': 'DEBUG', 'propagate': False, }, 'scripts': { 'handlers': ['scripts_handler'], 'level': 'INFO', 'propagate': False }, 'console': { 'handlers': ['console'], 'level': 'DEBUG', 'propagate': True }, # API/Views 模块的日志处理 'views': { 'handlers': ['default', 'error'], 'level': 'DEBUG', 'propagate': True }, 'util': { 'handlers': ['error'], 'level': 'ERROR', 'propagate': True }, } } 

説明:

  1. フォーマッタ:設定印刷ログフォーマット
  2. ハンドラ:特定を定義するために使用するには、コンソールモードに印刷されて、あなたは、デフォルトのモードは、「コンソール」を複数、「デフォルト」を定義することができる方法をログに記録します。
  3. ロガー:ログの種類に対処するためのconfigureハンドラに使用さは、例えば、あなたはまた、コンソールログファイルをエクスポートする必要があります。

注意:

  1. ロガータイプ「ジャンゴ」これは、ログのすべてのタイプを処理します。
  2. sourceDns.webdns.viewsアプリケーションPYファイル

デイとロギング

コードの例を見てください:

import logging

logger = logging.getLogger("console") def index(request): logger.debug("hello") 

注:getLoggerこの名前の使用は、我々は上記で定義された良いですloggersロガー内部。

次に、いくつかのパラメータが導入され、説明されています

ログレベル Level

ログメッセージの生成および処理するキーロギングモジュール。各メッセージは、重大度レベル関連するコンポーネントを示すいくつかのテキストで構成されています。レベルは、シンボル名と数値が含まれています。

レベル 説明
CRITICAL 50 重大なエラー/メッセージ
エラー 40 エラー
警告 30 警告メッセージ
INFO 20 通知メッセージ
デバッグ 10 デバッギング
NOTSET 0 なしレベル

レコーダー Logger

レコードのデフォルトの動作では、ログレベル、出力先、メッセージ・フォーマットおよびその他の重要な詳細を含め、ログメッセージを管理する責任があります。

キーワード引数

  • ファイル名は、指定したファイル名に添付メッセージを記録します
  • ファイルモードファイルを開くために使用するモードを指定します
  • ログメッセージを生成するためのフォーマット文字列の書式
  • 出力日付と時刻のdatefmtフォーマット文字列
  • レベル設定レベルレコーダー
  • ログファイルにメッセージを送信するために、開いているファイルのストリームを提供します。

ログメッセージの形式 format

  • 名前%(名)■レコーダー
  • レベル%をロギング(levelno)のデジタル形式
  • テキスト名の%(Levelname)■ログレベル
  • %(filename)は、ソースファイルのログファイル名の呼び出しを実行しますよ
  • %(パス名)の実行ログソース・ファイルのパス名呼び出し
  • %(FUNCNAME)関数名のロギング呼び出しを実行しますよ
  • モジュール名%(モジュール)がコールロギングを実行しますよ
  • %(LINENO)は、行番号通話記録を実行しますよ
  • %sの実行ログの記録時間を(作成されます)
  • %(いるasctime)S日時
  • %(ミリ秒)のミリ秒部
  • %(スレッド)DスレッドID
  • %(のthreadName)■スレッド名
  • %(プロセス)DプロセスID
  • %(メッセージ)の記録されたメッセージ

内蔵プロセッサ handler

ロギングモジュールは、いくつかのプロセッサを提供し、ログメッセージは、様々な方法で処理することができます。使用はaddHandler()メソッドは、Loggerオブジェクトにプロセッサを追加します。また、各プロセッサ独自のスクリーニングおよびレベルのために構成されてもよいです。

  • handlers.DatagramHandler(ホスト、ポート):ログメッセージは、UDPサーバがホストとポートの開発に位置して送信します。
  • handlers.FileHandler(ファイル名):メッセージがログ・ファイルのファイル名に書き込まれます。
  • handlers.HTTPHandler(ホスト、URL):HTTPサーバをアップロードするためにHTTP GETまたはPOSTメソッドを使用してログメッセージ。
  • handlers.RotatingFileHandler(ファイル名):メッセージがログ・ファイルのファイル名に書き込まれます。ファイルサイズが開発しMAXBYTESの値を超えた場合、それはファイル名1としてバックアップされます。

内蔵のプロセッサ、あなたがしたい場合は、より深い理解がたくさんありますので。あなたは公式マニュアルを表示することができます。

今、おそらく今使用する前の例と組み合わせることができ、使用へのロギングを理解しています。



著者:ドローはマスタースター
リンクをします。https://www.jianshu.com/p/b6cdb470bee1

おすすめ

転載: www.cnblogs.com/lab-zj/p/12106465.html