設定ファイルを利用することで、コード中にログ設定を書かなくて済む。
import logging
import logging.config
logging.config.fileConfig("log.conf")
logging.debug("debug message")
logging.info("info message")
logging.warn("warn message")
logging.error("error message")
log.conf
rootLoggerにStreamHandlerとRotatingFileHandlerの2つを設定し、
RotatingFileHanlderの方はwarn以上のみ出力する(エラーログ)
[loggers]
keys=root
[handlers]
keys=consoleHandler,errorHandler
[formatters]
keys=simpleFormatter
[logger_root]
level=DEBUG
handlers=consoleHandler,errorHandler
[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=simpleFormatter
args=(sys.stdout,)
[handler_errorHandler]
class=handlers.RotatingFileHandler
level=WARN
formatter=simpleFormatter
args=("error.log", 'a', 200*1024, 3)
[formatter_simpleFormatter]
format=%(asctime)s - %(name)s %(levelname)-7s %(message)s
設定ファイルの記述方法は、こちらを参照。