【Python応用】Pythonでエラーやステータスをログ出力する【logging】

プログラミング
スポンサーリンク

スポンサーリンク

はじめに

今回はPythonの基礎文法を習得して実際にアプリケーションを作りたい方に向けてできるだけ簡単にロギングについて解説しました。

Pythonは人工知能、機械学習、ディープラーニング、データ解析などに特化しており、2020年プログラミング言語人気ランキング1位になっています。

Pythonについて詳しく知りたい方はこちらのウェブサイトをどうぞ。

Pythonの基礎がまだ習得できている自信がない方はこちらの記事も見てみてください。

ロギング(logging)とは

loggingモジュールは、エラー情報やステータス情報をログ出力することができます。 loggingモジュールを使用してログ出力するメリットとして、Pythonの標準モジュールであるため、予め用意された形式のものを非標準アプリケーションに対しても使用することができます。

techacademyより

ロギング(logging)の基本

それではロギングの基本について解説していきます。

import logging

logging.critical('critical')
logging.error('error')
logging.warning('warning')
logging.info('info')
logging.debug('debug')

この状態で実行すると

CRITICAL:root:critical
ERROR:root:error
WARNING:root:warning

とwarningまでが出力されるようにデフォルトでなっています。

infoまで出力したい場合は

import logging

logging.basicConfig(level=logging.INFO)

logging.critical('critical')
logging.error('error')
logging.warning('warning')
logging.info('info')
logging.debug('debug')

logging.basicConfig(level~…)としてあげましょう。

CRITICAL:root:critical
ERROR:root:error
WARNING:root:warning
INFO:root:info

となります。同様に

import logging

logging.basicConfig(level=logging.DEBUG)

logging.critical('critical')
logging.error('error')
logging.warning('warning')
logging.info('info')
logging.debug('debug')

としてあげた場合、実行結果は

CRITICAL:root:critical
ERROR:root:error
WARNING:root:warning
INFO:root:info
DEBUG:root:debug

とDEBUGまで表示されます。

スポンサーリンク

ロギング(logging)をファイルに書き込む

ロギングで出力された情報をファイルに書き込みたい場合、filenameを用います。

import logging

logging.basicConfig(filename='log.test',level=logging.DEBUG)

logging.critical('critical')
logging.error('error')
logging.warning('warning')
logging.info('info')
logging.debug('debug')

とlogging.basicConfig(filename~…)としてあげるとlog.testに実行結果が書き込まれます。

<log.test>

CRITICAL:root:critical
ERROR:root:error
WARNING:root:warning
INFO:root:info
DEBUG:root:debug

ロガー(logger)

では次にロガーについての解説です。

ロガーとは実行しているファイルを明記したい時に用います。

まずはloggerを用いてmainで実行されていることを明記してあげましょう。

import logging

logging.basicConfig(level=logging.DEBUG)

logger = logging.getLogger(__name__)
logger.critical('critical')
logger.error('error')
logger.warning('warning')
logger.info('info')
logger.debug('debug')

とloggerを用いてあげた場合、実行結果は

CRITICAL:__main__:critical
ERROR:__main__:error
WARNING:__main__:warning
INFO:__main__:info
DEBUG:__main__:debug

となります。

なぜならmainファイル(そのファイル上)で実行されているからです。

これでmainでのロギングが明記できました。

では次に<logtest.py>ファイルも作成してあげましょう。

<logtest.py>

import logging

logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)

def logMethod():
    logger.critical('from logtest critical')
    logger.error('from logtest error')
    logger.warning('from logtest warning')
    logger.info('from logtest info')

加えてmainファイルも書き加えます。

import logging

import logtest

logging.basicConfig(level=logging.INFO)

logger = logging.getLogger(__name__)
logger.critical('critical')
logger.error('error')
logger.warning('warning')
logger.info('info')
logger.debug('debug')

logtest.logMethod()

実行結果は

CRITICAL:__main__:critical
ERROR:__main__:error
WARNING:__main__:warning
INFO:__main__:info
DEBUG:__main__:debug
CRITICAL:logtest:from logtest critical
ERROR:logtest:from logtest error
WARNING:logtest:from logtest warning
INFO:logtest:from logtest info

とロギングされているファイル名が明記されるようになります。

このようにロギングしているファイルを明記したい場合はロガーを使ってあげましょう。

スポンサーリンク

Pythonの勉強方法【おまけ】

Pythonの基礎文法を勉強するにはUdemyというオンラインプログラミング学習プラットフォームがおすすめです。

具体的に言うとこちらの講座です。

この講座だけで基礎文法だけでなく実践的な応用スキルまで身につけることができます。

基礎から応用まで分かりやすい講座なので気になる方は是非みてみてください。

私が受けたPythonの講座の中では最も良かったですし、この講座だけで案件を獲得できるようになるレベルまでプログラミングを上達できることができると思います。

実際多くの人がWeb上で高評価をしていてUdemyのPython講座といえばこの講座と言われているほどです。

今回紹介したロギングもこの講座の中でより詳しく述べられています。

気になる方はこちらのリンクから。

Udemy

その他の記事

おわりに

今回はPythonの基礎を習得し終わってアプリケーションを制作したい方向けにPython応用としてロギングについて解説しました。

ロギングは応用の中でも慣れれば簡単で基礎を習得した方は自分が作りたいものに合わせて応用を勉強し、実際に制作してみるのがいいと思います。

他にもPythonの記事を挙げているのでそちらも合わせて読んでみてください。

コメント

タイトルとURLをコピーしました