基本入れるべき
import logging
import sys
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
# create a file handler
handler = logging.FileHandler('app.log')
handler.setLevel(logging.INFO)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
hander_stdout = logging.StreamHandler(sys.stdout)
hander_stdout.setLevel(logging.INFO)
hander_stdout.setFormatter(formatter)
logger.addHandler(hander_stdout)
logger.addHandler(handler)
使うとき
logger.info('hogehoge')
これでないと、ファイルが出力されないようだ
特殊なモジュールを使うと、logging moduleが正しく動作しないことがあり、スクラッチしてしまった方が早かったりする。
def logging_func(input_text):
import datetime
now = datetime.datetime.now()
now = now.strftime('%Y-%m-%d %H:%M:%S')
builded_text = f'{now} {input_text}'
print(builded_text)
with open(f'app.log', 'a') as fp:
fp.write(builded_text + '\n')
logging_func('start to app...')
これで簡単なロガーは代替できる