<jupyter_start><jupyter_text>Logging Что было бы круто:* сообщения выводятся на экран в Jupyter notebook без задержек (как это иногда бывает у print)* сообщения автоматом пишутся в файл в едином формате (например, когда скрипт выполняется по cron)* понятно какой скрипт, на какой строке и какой тип сообщения выдал (INFO, WARNING, ERROR)<jupyter_code>with open('error.log') as f:
    f.write('...')
# https://docs.python.org/3.6/library/logging.html
import logging
logger = logging.getLogger( 'Тест логгера' )

# в какой файл пишем логи
hdlr = logging.FileHandler( 'error.log', mode = 'w' )

# что будем писать в файл
# https://docs.python.org/3.6/library/logging.html#logrecord-attributes
formatter = logging.Formatter('%(asctime)s [LINE:%(lineno)d] %(levelname)s %(message)s')

hdlr.setFormatter( formatter )
logger.addHandler( hdlr )
logger.setLevel(logging.INFO)
data = [ 1, 55, 'abc', 12 ]
for num in data:
    # проверяем входные данные на целое число
    if isinstance( num, int ):
        logger.info( 'Строка норм {}'.format(num) )
    
    else:
        logger.warning( 'Некорректное значение. Значение было {}'.format(num) )<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.12703862660944207, 'fraction_numerical': 0.007725321888412017, 'mean_word_length': 4.5260663507109005, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '268317', 'license': 'MIT', 'n_tokens_mistral': 457, 'n_tokens_neox': 476, 'n_words': 116, 'path': 'Lectures notebooks/(Lectures notebooks) netology Mathematics and Python/7. Python_sql/Logging.ipynb', 'repo_name': 'Alex110117/data_analysis', 'size': '1165'}