Skip to content

Instantly share code, notes, and snippets.

@GINK03
Last active November 25, 2019 02:44
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save GINK03/4220a0f169ce2aacff8671bddf1054be to your computer and use it in GitHub Desktop.
python-logger

基本入れるべき

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...')

これで簡単なロガーは代替できる

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment