2017-11-20 20 views
-3

以下の私のpythonのコードです:ログファイルがまったく作成されないのはなぜですか?

#!/usr/bin/env 
# coding=utf-8 
import logging 
from Main_Package.General_Functions.Functions import 

login,search_by_customer_id,add_subscriber_iden_and_activate,/ 
click_on_popup,browser,test_failed,test_passed 

FILE_NAME='/newlog.log' 
logging.basicConfig(filename=FILE_NAME,level=logging.DEBUG) 
logging.debug('This message should go to the log file') 

try: 
    login() 
    search_by_customer_id() 
    add_subscriber_iden_and_activate() 
    click_on_popup() 
#******************validating the status after/
activation********************************** 
    status=browser.find_element_by_css_selector("#main_details_tbl/
    > tbody > tr:nth-child(8) > td:nth-child(2)").text 
    if status=="Active": 
     test_passed() 
    else: 
     test_failed() 
except: 
    logging.exception("something") 

browser.quit() 

私はなぜ、私のpython script-ですが、ログファイルがまったく作成されていない機能のセット全体のためにすべての例外をキャッチしたいです?

+1

ファイルパスがFSルートを指し、特別な 'su'特権が必要ですので、' sudo'でスクリプトを実行しています –

+0

いいえ、pycharm IDE経由で実行しています。 –

+0

それから 'FILE_NAME = 'newlog.log''のように先頭のスラッシュを' FILE_NAME'から削除し、あなたのPythonコードを実行しているフォルダ内のファイルを探します。 –

答えて

1

@DexJ mentioendとして、ファイル名の前にスラッシュがないことを確認してください。あなたがどこかに書いているなら、あなたは間違いを起こすべきではありません。

あなたの問題:あなたは特定のエラーを捕まえていません。なぜなら、何らかの理由でPython 3がそれを好まないからです。なぜこれが起こるのか正確に分かっている人は、コメントをしてより深い説明を加えてください。ここで

は、あなたがそれを変更する必要があるものです:

import logging 

FILE_NAME='newlog.log' 
logging.basicConfig(filename=FILE_NAME, level=logging.DEBUG) 
logging.debug('This message should go to the log file') 

try: 
    raise RuntimeError('Test error') 
# Catch your error specifically, a bare except doesn't seem to work here 
except RuntimeError: 
    logging.debug('RuntimeError caught') 

これは私の内容をログファイル「newlog.log」を与える:

DEBUG:root:This message should go to the log file 
DEBUG:root:RuntimeError caught 

はnewlog.logがないことを確認してくださいスクリプトが実行されているディレクトリにすでに存在しています。

+0

に記載されている行を確認してください。 "*あなたのスクリプトが実行されているディレクトリにnewlog.logが存在しないことを確認してください。毎回手動でログを記録しますか? –

+0

絶対にそうではありません。あなたはログディレクトリにロギングし、ログファイルのタイトルに時間を含めるように設定する必要があります(または、新しいログを書き込むための自動メソッドが必要です)。私はOPがなぜロギングが機能していないのかを知りたいと思っており、これに加えてフルロギングシステムをセットアップする予定です。 – Shayn

+0

AMAZING !!!!完璧に動作します! –

0

スラッシュのないファイル名を使用する必要があります。ファイル名newlog.logと 書き込み '/newlog.logは' '/' あなたは場所に書き込みすることを意味します(メインのLinuxディレクトリ)

#USE, 
FILE_NAME='./newlog.log' 
OR 
FILE_NAME ='newlog.log' 

コメントの後に更新:

ちょうど次を使用して実行行をチェックして、ファイルを作成するかどうかを確認してください。ロギングモジュールに問題はありません。

import logging 
from Main_Package.General_Functions.Functions import 

FILE_NAME='./newlog.log' 
logging.basicConfig(filename=FILE_NAME,level=logging.DEBUG) 
logging.debug('This message should go to the log file') 
+0

すでに同じ結果が得られました--->ファイルが全く作成されていません –

+0

私のコードは –

+0

C:\ MiBAS_Automation_Pythonにありますようにしてみてください。 –

関連する問題