実装例
logging設定
from logging.config import dictConfig
import os
LOG_DIR = 'ログ出力先ディレクトリのパス'
if not os.path.exists(LOG_DIR):
os.mkdir(LOG_DIR)
LOGGING = {
# 「1」固定
'version': 1,
# 既存のロギング設定を無効にする
'disable_existing_loggers': True,
# formatter
'formatters': {
# メッセージと出力時刻のみ出力
'simple': {
'format': '[%(asctime)s]%(message)s',
},
# ログレベル、ファイルパス、行番号、関数名も出力
'detail': {
'format': '[%(asctime)s][%(levelname)s]%(pathname)s@%(lineno)d#%(funcName)s: %(message)s',
},
},
# handler
'handlers': {
# コンソール出力
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'detail',
},
# ファイル出力
'file': {
'level': 'DEBUG',
'class': 'logging.handlers.WatchedFileHandler',
'formatter': 'detail',
'filename': os.path.join(LOG_DIR, '[ログファイル名]'),
'encoding': 'UTF-8',
'delay': True,
},
},
# logger
'loggers': {
'': {
# コンソール出力、ファイル出力 を使う
'handlers': ['console', 'file', ],
'level': 'DEBUG',
'propagate': True,
},
'your package name': {
'level': 'DEBUG',
'propagate': True,
},
},
}
dictConfig(LOGGING)
log出力
from logging import getLogger
logger = getLogger(__name__)
logger.info('foo')