Overview
このガイドでは、さまざまなPyMongoコンポーネントのログ オプションを設定する方法を学習できます。
PyMongo はPython のネイティブ ログ ライブラリをサポートしています。 以下のコンポーネントのログの冗長を設定できます。
pymongo.command
は、コマンド操作をログに記録しますpymongo.connection
は、接続管理操作をログに記録します。pymongo.serverSelection
は、サーバー選択操作をログに記録します。
これらのオプションを個別に構成するだけでなく、pymongo
にログレベルを設定することでグローバル ログ レベルを構成できます。ネイティブのロギング ライブラリの詳細については、Pythonロギング ライブラリのドキュメントを参照してください。
例
次の例では、グローバル ログ レベルを INFO
に設定します。
import logging logging.getLogger("pymongo").setLevel(logging.INFO)
次の例では、 pymongo.command
コンポーネントのログレベルを DEBUG
に設定します。
import logging logging.getLogger("pymongo.command").setLevel(logging.DEBUG)
ドライバーが出力するメッセージには、次の DEBUG
メッセージの例に示すように、メッセージの先頭に指定されたログレベルが含まれます。
DEBUG:pymongo.command:{"clientId": {"$oid": "..."}, "message": "Command started", "command": "{\"insert\": \"test\", \"ordered\": true, \"lsid\": {\"id\": {\"$binary\": {\"base64\": \"...\", \"subType\": \"04\"}}}, \"$db\": \"db\", \"documents\": [{\"x\": 1, \"_id\": {\"$oid\": \"...\"}}]}", "commandName": "insert", "databaseName": "db", "requestId": ..., "operationId": ..., "driverConnectionId": 1, "serverConnectionId": 3554, "serverHost": "localhost", "serverPort": 27017}
切り捨ての構成
pymongo.command
コンポーネントのロギングを有効にすると、結果のログはデフォルトで 1000 バイト後に切り捨てられます。 この切り捨て制限は、次の例に示すように、MONGODB_LOG_MAX_DOCUMENT_LENGTH
環境変数を希望の長さに設定することで構成できます。
import os os.environ["MONGODB_LOG_MAX_DOCUMENT_LENGTH"] = "2000"