Вы можете использовать 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
Я предпочел бы использовать Скорость просто, потому что использование JSP+JSTL может позволить ленивым/неаккуратным разработчикам попадать в беду путем добавления scriptlets. Не должно быть никакой причины иметь код Java в Вашем уровне представления. Не требуется многого для понимания Скорости, и на самом деле я просто взял его приблизительно за две недели. В то время как мне не нравится форматирование вывода, по большей части это работает вполне прилично. Мы на самом деле не используем его в уровне представления приложения, а скорее для генерации HTML для использования другими браузерами. Мы сохраняем вывод от Скорости как файлы, которая затем развертывается на другом сервере для потребления другими веб-клиентами.
Я на самом деле немного предпочитаю Freemarker Скорости, на всякий случай Вы открыты для исследования других опций. Сравнение здесь:
http://freemarker.org/fmVsVel.html
Я соглашаюсь с операторами Ben об осуществлении простого представления путем предотвращения JSP и возможности scriptlets. Мне также нравится способность представить шаблон Freemarker или Velocity в любом виде среды выполнения (JUnit, основной () метод), не требуя контейнера Servlet/JSP, как JSP был бы.
JSP также более трудно визуально дифференцировать от встроенного HTML. Со Скоростью это очень очевидно.
Кроме того, пакет VelocityTools обеспечивает большую дополнительную функциональность.