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

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

スポンサーリンク

はじめに

どーも、学生エンジニアのゆうき(@engineerblog_Yu)です。

今回は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エンジニアになりたい

これらに当てはまる方におすすめの講座を紹介していこうと思います。

Pythonの勉強方法【おまけ】

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

上記の講座を全部理解することができればすぐにPythonエンジニアとして働くことも可能です。

また大学の授業やバイト、インターンであれば、その都度必要な部分だけを見てスキルアップしていくこともできます。

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

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

プログラミングスキルを身につけて安定を得たい、エンジニアになりたい、プログラミングの副業をしてみたいと思っている方に特におすすめの講座です。

以下のリンクからUdemy講座を参照することができます。

自分の未来に投資しよう。サイバーセール中はUdemyコースが最大90%OFF。


その他の記事

おわりに

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

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

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

コメント

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