Tech Racho エンジニアの「?」を「!」に。
  • 開発

Pythonの便利なロガー君

pythonには便利なloggerが最初から入っているので、最初からprintじゃなくてこっちを使っておけば良いですね。
小規模なプログラムでも役立ちます。

  • main.py
import logging
import logging.config

logging.config.fileConfig('./logging.conf')
mylog = logging.getLogger('mylog1')
mylog.debug('hello')
mylog.error('oh no!')
  • logging.conf
[loggers]
keys=root,mylog1,mylog2

[handlers]
keys=default,file1,file2

[formatters]
keys=basic

[logger_root]
level=NOTSET
handlers=default

[logger_mylog1]
lebel=NOTSET
handlers=file1
qualname=mylog1

[logger_mylog2]
lebel=NOTSET
handlers=file2
qualname=mylog2

[handler_default]
class=StreamHandler
level=NOTSET
formatter=basic
args=(sys.stdout,)

[handler_file1]
class=FileHandler
level=NOTSET
formatter=basic
args=(“log1.log”,’a’)

[handler_file2]
class=FileHandler
level=NOTSET
formatter=basic
args=(“log2.log”,’a’)

[formatter_basic]
format=%(name)s: %(asctime)s %(levelname)s %(message)s
datefmt=%Y/%m/%d %H:%M:%S
class=logging.Formatter

confファイルに複数のlogger、handlerを指定することで、複数のファイルに書き込んだり、標準出力とファイルの両方に書き込んだり、エラーレベルでフィルタリングしたりできます。formatterを指定することで、日付を表示したりといった加工が簡単にできます。

便利ですね。


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。