2016-11-14 4 views
0

ソフトウェア

  • Djangoの1.9
  • の結果を示していないのPython 3.4

私が何をしたのですか?

私は、ログファイルの中に入るんでした何ロギングが配列

from django.db import connection 
    cursor = connection.cursor() 
    cursor.execute('SELECT p.name, p.name_zh_hans, p.art_number, ....') 
    rows = cursor.fetchall() 

logger = logging.getLogger(__name__) 

for row in rows: 
     row_num += 1 
     logger.info(row) 
     for col_num in range(len(row)): 
      ws.write(row_num, col_num, row[col_num], font_style) 

私のviews.pyに、次のDjangoのコードを持っていますか?

(0.005) SELECT p.name, p.name_zh_hans, p.art_number, ....; args=None 
(0.005) SELECT p.name, p.name_zh_hans, p.art_number, ....; args=None 
(0.006) SELECT p.name, p.name_zh_hans, p.art_number, ....; args=None 

私は何を期待しましたか?何が悪かったのか、ログファイル内の配列の内容の

表示

+0

ログはどこで設定しましたか?なぜDjangoで純粋なSQLを使用していますか? –

+0

テーブルに何行あるのか教えていただけますか?私は何を考えているかについて確かめるためにそれを知る必要があります:) – Sid

答えて

0

logging.getLogger(__name__)に電話する前にlogging.basicConfig(level=logging.INFO)に設定する必要があります。

詳しくは、Logging Cookbookをご覧ください。

0

あなたが見ているものは、実際にはdjango.db.backends、チェックアウトthis referenceのログです。

データベースとコードとの相互作用に関連するメッセージ。 の例では、要求 によって実行されるすべてのアプリケーション・レベルのSQL文は、このロガーにDEBUGレベルでログされます。

期間:SQL文を実行するのに要する時間このロガーへ

メッセージは、次の余分なコンテキストを持っています。
SQL:実行されたSQL文の 。
params:SQLコールで で使用されたパラメータ。 settings.DEBUGは関係なく、インストールされているログ・レベルまたは ハンドラの、Trueに設定されている場合、パフォーマンス上の理由から、SQLロギング用

だけ が有効になっています。

このログには、フレームワークレベルの初期化(SET TIMEZONEなど)やトランザクション管理クエリ(BEGIN、COMMIT、 ROLLBACKなど)は含まれません。 すべてのデータベースクエリを表示する場合は、データベースのクエリログを有効にします。

またあなたのログハンドラは、あなたが実際にログインしている、あなたは何をされないものを確認するためにチェックアウトしてあなたはレベルでログレベルの情報一方django.db.backends DEBUGレベルでログをログに記録されています。 )

希望すると助かります!