Веб-сервер Python: не регистрировать запрос от localhost

Вызов free() указателя, не возвращенного функциями выделения памяти (malloc, calloc и т. д.) вызывает неопределенное поведение. У вашего кода есть неопределенное поведение, поэтому компилятору не нужно давать вам какую-либо диагностику, и он может показать любое поведение, может работать или сбой или буквально что-либо делать.

Просто избегайте писать код, который вызывает Undefined Behavior, это единственное решение.

1
задан Sabrina 17 January 2019 в 15:38
поделиться

1 ответ

Вы можете использовать logging.Filter класс. Когда вы объявляете свой логгер, сделайте что-то вроде этого:

import logging

logging.basicConfig(filename='myapp.log', level=logging.INFO)
class Global:
    SourceIPAddress = ''


class IpFilter(logging.Filter):
    def filter(self, rec):#the rec is part of the function signature.
        return not Global.SourceIPAddress == '127.0.0.1'


def main():



    log = logging.getLogger('myLogger')
    log.addFilter(IpFilter())
    log.info("log")
    Global.SourceIPAddress = '127.0.0.1'
    log.info("Don't log")

if __name__ == '__main__':
    main()

Конечно, я реализовал это очень простым способом, и вы должны сохранить IP в лучшем месте (:

Я бы также проверьте эти ссылки для дополнительной информации:
https://docs.python.org/3/howto/logging-cookbook.html https: //www.programcreek. ком / Python / пример / 3364 / logging.Filter

0
ответ дан Green 17 January 2019 в 15:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: