2017-01-12 5 views
-2

テストを実行している場所から1レベル上のテスト結果をログに記録します。だから、私はどのようにパス全体のリストなしでそれを行うのですか?ロギングディレクトリ形式?

logging.basicConfig(filename="test.log", level=logging.DEBUG) 
+1

これは単に減らすことはありません。唯一の違いは、新しく作成したloggerオブジェクトを使用すると思いますか?その場合は、確かにGoogle経由で見つけることができます。 – jonrsharpe

答えて

1

私が把握するためにこれは些細な問題よりも多くのだった - 「グーグル経由では」多くオプションをもたらしたが、ここでは、あなたの現在のコードを使用して2つの解決策は以下のとおりです。

  • は引き続き使用logging.basicConfig:簡単な解決策は、1つ上のディレクトリの相対パスをファイル名に追加することです。ニシキヘビとクロスプラットフォームな方法は、os.pardirと一緒に表示されます。
import os 
import logging 

# setup the path to the logfile 
logname = 'test.log' 
logfile = os.path.join(os.pardir, logname) 

# log as you are currently 
logging.basicConfig(filename=logfile, level=logging.DEBUG) 
  • 別のオプションは、どのpython docs状態、logging.FileHandlerを使用することです:

    ハンドラは、ログレコードを送信します(ロガーによって作成された)適切な 宛先に転送します。

    この場合、テストを実行している場所の1つ上の場所になります。 * *「どのように私は、現在実行中のファイルのパスを見つけることができる」ために

#setup the logger object 
logger = logging.getLogger('test') 
fh = logging.FileHandler(logfile) 
logger.addHandler(fh) 
logger.setLevel(logging.DEBUG) 

# use the logger object 
logger.debug('a DEBUG') 
logger.info('an info')