0

Python web.py を使用する Web サイトに取り組んでいます。ユーザーが入力を入力するフォームがあり、送信ボタンが押されると、以下に示す .getJSON JQuery 関数を使用して Python ページが呼び出されます (一致します)。

function buildMatches(input){
    $.getJSON("/matches", {e:input}, function(json){
      //Returned JSON object is worked on
   }
}

「一致する」Python ページは、DB から値を取得し、文字列正規表現を実行して、JSON オブジェクトを返します。すべて正常に動作します。私の質問は、正規表現操作中に正確に何が起こっているかを確認するために、Python ページの「一致」から何かを出力するにはどうすればよいかということです。print "" (python 2.5) を試しましたが、コンソールに出力されることは理解しています。私はいくつかの調査を行いましたが、私の状況では何も見つかりませんでした。必ずしも HTML ページに出力する必要はありません。何が起こっているかを確認できる場所ならどこにでも出力できます。助けてくれてありがとう。

Web サーバー (SSH、SFTP など) にアクセスできます。ログ モジュールをインポートしてログを記録しようとしました。使用したコードは以下のとおりです。コマンドラインからページを実行した場合はログに記録できましたが、JS ページによって呼び出された場合はログに記録できませんでした。

import logging
logging.basicConfig(filename='./SomeClass.log', filemode='w', level=logging.DEBUG)

class SomeClass:
    logging.info('Started')
    logging.info('Another log')

    def __init__(self, obj):
        logging.info('In the init')

    def another_functio(self):
                logging.info('Logging inside the function')

ログのフルパスを設定しようとしましたが、コンソールからこのクラスを実行したときにのみログファイルが書き込まれるか更新されるという同じ問題がまだあります。クラスが Web サーバーによって呼び出された場合、これは機能しません。

logging.basicConfig(filename='/home/.../.../.../example.log', filemode='w', level=logging.DEBUG)
4

2 に答える 2

1

Web サーバーへのアクセス量に応じて、コードを手動で実行できるため、web.py は組み込みの Web サーバーを使用します。次に、印刷ステートメントがコンソールに表示されます。

それ以外の場合は、ブラウザでアクセスできる場所に自分のログ ファイルを書き込むことを考えたことがありますか?

于 2012-06-07T01:34:35.690 に答える
0

すべての助けをありがとう。Apache サーバーのセットアップと Python の実装をさらに掘り下げた後、何が起こっているのかを確認し、Web アプリをデバッグするのに役立つソリューションを見つけることができました。エラーをログに記録するようにApache構成が設定されており、WSGIもstd.outをブロック(pukes)することがわかりました。私ができたのは、印刷コマンドを Apache エラー ログ ファイルにリダイレクトすることでした。

print >> sys.stderr, "Debugging print with variable" + variable

次に、Apache エラー ログを確認して、Web アプリのデバッグを開始します。私にとって苦痛だったので、他の誰かがこの問題に遭遇した場合に備えて、これを共有すると思いました.

再度、感謝します。

于 2012-07-03T16:58:18.103 に答える